A place to share code and server configurations in support of the networkQuality tool
Network Quality Server
Welcome!
The Network Quality Server project was created as a place to share example servers that can used by the networkQuality
command line tool available in macOS 12.
You can find a textual description of what a server needs to implement here
There’s also 2 complete reference server implementations, one written in Swift and the other in Go. Also provided are configurations for HTTP server/proxy servers: Apache Traffic Server, Apache HTTPD and nginx.
All the samples require an SSL certificate to run.
Using networkQuality against your server
The networkQuality
CLI takes a -C
switch allowing you to point it at your server.
user@myhost ~ % networkQuality -C https://networkquality.example.com:8443/config
==== SUMMARY ====
Upload capacity: 29.662 Mbps
Download capacity: 541.622 Mbps
Upload flows: 12
Download flows: 12
Responsiveness: High (1825 RPM)
NOTE: The networkQuality
CLI tool will only connect to a server presenting a valid SSL certificiate. If you are using a custom CA, ensure the CA is trusted by the system.
There are more options available to affect behavior of this utility. See the manpage of networkQuality
for more info.
Contributing
Please review how to contribute if you would like to submit a pull request.
Asking Questions and Discussing Ideas
If you have any questions you’d like to ask publicly, or ideas you’d like to discuss, please raise a GitHub issue.
Project Maintenance
Project maintenance involves, but not limited to, adding clarity to incoming issues and reviewing pull requests. Project maintainers can approve and merge pull requests. Reviewing a pull request involves judging that a proposed contribution follows the project’s guidelines, as described by the guide to contributing.
Project maintainers are expected to always follow the project’s Code of Conduct, and help to model it for others.
Project Governance
Although we expect this to happen very infrequently, we reserve the right to make changes, including changes to the configuration format and scope, to the project at any time.