Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

PerfectlySoft network libs are no longer maintained #187

Open
cwillisf opened this issue Feb 4, 2021 · 2 comments
Open

PerfectlySoft network libs are no longer maintained #187

cwillisf opened this issue Feb 4, 2021 · 2 comments
Labels
macOS This applies to the macOS version of the application tech debt

Comments

@cwillisf
Copy link
Contributor

cwillisf commented Feb 4, 2021

Expected Behavior

In general, the scratch-link codebase should only use up-to-date and actively maintained dependencies. This is even more important for dependencies related to network and security features.

Actual Behavior

The macOS version of Scratch Link uses the PerfectlySoft "Perfect" family of libraries for HTTP, SSL/TLS, and WebSockets. The PerfectlySoft group seems to have been disbanded and these libraries are no longer maintained.

So far the consequences are low: I'm not aware of any serious stability or security problems with these libraries. The only current problem I know about is that the libraries don't build for Apple M1, which is tracked as a separate issue in #186.

Operating System and Browser

Mac

@cwillisf cwillisf added the macOS This applies to the macOS version of the application label Feb 4, 2021
@cwillisf
Copy link
Contributor Author

cwillisf commented Feb 4, 2021

(moved from #186)

Investigation notes: what if we switch from Perfect to another third-party Websocket server library?

It looks like Vapor is the only reasonable third-party candidate currently available. I experimented with both Vapor 3 and Vapor 4.

Vapor 4 seems to support everything we need, but it only support macOS 10.15 and above. Scratch Link currently supports macOS 10.10 and above, and while we could probably drop a few of the older versions I'm not sure we can go all the way to 10.15 just yet.

Vapor 3 seems to support all versions of macOS that we support, in that it doesn't explicitly specify a minimum version of macOS. Unfortunately, Vapor 3 doesn't support HTTPS / WSS, which is a requirement for the way Scratch Link currently works.

Summary:

@cwillisf
Copy link
Contributor Author

cwillisf commented Feb 4, 2021

To investigate: is NIOWebSocket from https://github.com/apple/swift-nio a viable option?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
macOS This applies to the macOS version of the application tech debt
Projects
None yet
Development

No branches or pull requests

2 participants