https://github.com/felipealfonsog/speedynet
SpeedyNet is a command-line utility for Linux and macOS that empowers users to accurately measure their Internet connection's download and upload speeds, providing real-time feedback on network performance.
https://github.com/felipealfonsog/speedynet
c command-line-tool internet-speed-checker speedtest unix-linux
Last synced: 4 days ago
JSON representation
SpeedyNet is a command-line utility for Linux and macOS that empowers users to accurately measure their Internet connection's download and upload speeds, providing real-time feedback on network performance.
- Host: GitHub
- URL: https://github.com/felipealfonsog/speedynet
- Owner: felipealfonsog
- License: mit
- Created: 2023-08-13T10:15:09.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2024-09-11T05:28:59.000Z (almost 2 years ago)
- Last Synced: 2025-10-28T12:10:03.126Z (8 months ago)
- Topics: c, command-line-tool, internet-speed-checker, speedtest, unix-linux
- Language: C
- Homepage:
- Size: 245 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
### SpeedyNet 🌐🔗 [(Experimental Project)](#important-experimental-project)*
SpeedyNet is a command-line utility for Linux and macOS that empowers users to accurately measure their Internet connection's download and upload speeds, providing real-time feedback on network performance.
SpeedyNet is a powerful and user-friendly command-line tool designed to assess the true capabilities of your Internet connection. Compatible with both Linux and macOS, SpeedyNet eliminates the need for web-based tests by directly measuring download and upload speeds in a terminal environment. Leveraging advanced network protocols and efficient data transmission techniques, SpeedyNet offers unparalleled accuracy and reliability.
With a comprehensive yet intuitive interface, SpeedyNet not only delivers real-time feedback on megabits per second (Mbps) download and upload speeds, but also provides insights into latency, packet loss, and other key technical metrics. Whether you're a home user curious about your network's performance or a professional seeking to optimize connectivity, SpeedyNet equips you with precise data to make informed decisions.
Experience the convenience of on-demand speed testing without relying on external servers or websites. SpeedyNet empowers you to gauge the health of your Internet link, troubleshoot issues, and verify service quality, all through a seamless command-line experience. Stay in control of your network performance with SpeedyNet.
* This is currently an experimental phase where the primary focus is on making the system functional and establishing a practical and logical pathway that aligns with both my vision and the project's goals. It might contain errors, bugs, etc. Many other non-core elements of the project are considered secondary.


[](https://github.com/Naereen/badges/)
[](https://lbesson.mit-license.org/)
[](https://www.vim.org)
[](https://code.visualstudio.com/)
#### Screenshot in macOS

#### Features
#### Speed Test
- Measures download and upload speeds of the internet connection.
- Utilizes TCP sockets to simulate network traffic and calculate data transfer rates.
- Displays progress and completion percentage during the test.
#### Latency Test (Ping)
- Measures the round-trip time for data to travel between the user's device and a server.
- Calculates latency in milliseconds (ms) to indicate network responsiveness.
#### Packet Loss Test
- Estimates the percentage of data packets lost during transmission.
- Uses Internet Control Message Protocol (ICMP) Echo requests to simulate network traffic.
- Monitors the received ICMP Echo replies and calculates packet loss.
#### Server Selection
- Provides a list of predefined servers, including Google DNS, Cloudflare DNS, OpenDNS, Quad9 DNS, and CleanBrowsing DNS.
- Can fetch a list of servers from the Speedtest API to enable additional server options.
#### User-Friendly Interface
- Displays an ASCII art logo upon launching the utility.
- Shows progress indicators during tests to keep users informed about ongoing operations.
- Presents the results in a clear format with selected server, download/upload speeds, latency, and packet loss.
#### Error Handling
- Handles various network errors, such as socket creation, connection failures, and API requests.
- Provides descriptive error messages to guide users in understanding issues.
#### Usage
1. Compile the program using a C compiler (e.g., GCC) and the provided source code.
2. Run the executable (`./speedynet`) to start the speed test utility.
3. The utility will perform the tests and display the results, including download/upload speeds, latency, and packet loss.
---
**Note:** SpeedyNet is a utility designed for testing purposes and may not provide results as accurate as dedicated speed test websites or applications.
#### NOTES
compiling in C:
get into the code source folder:
```
cd src
```
```
gcc -o speedynet_c speedynet.c -lcurl && ./speedynet_c
```
compiling in C++:
```
clang++ -o speedynet_cpp speedynet.cpp -lcurl && ./speedynet_cpp
```
In macOS & Linux is important to install this library (Get Brew to get the package):
```
brew install liboping
```
#### 📝Important (Experimental Project)
[](#)
This project is still in its experimental stage and may have limitations in terms of features and compatibility. Use at your own discretion.
#### Developer
- Developed by Felipe Alfonso González, a Computer Science Engineer from Chile.
- Contact: f.alfonso@res-ear.ch
- GitHub: [github.com/felipealfonsog](https://github.com/felipealfonsog)
#### Support and Contributions
If you find this project helpful and would like to support its development, there are several ways you can contribute:
- **Code Contributions**: If you're a developer, you can contribute by submitting pull requests with bug fixes, new features, or improvements. Feel free to fork the project and create your own branch to work on.
- **Bug Reports and Feedback**: If you encounter any issues or have suggestions for improvement, please open an issue on the project's GitHub repository. Your feedback is valuable in making the project better.
- **Documentation**: Improving the documentation is always appreciated. If you find any gaps or have suggestions to enhance the project's documentation, please let me know.
[](https://www.buymeacoffee.com/felipealfonsog)
[](https://www.paypal.me/felipealfonsog)
[](https://github.com/sponsors/felipealfonsog)
Your support and contributions are greatly appreciated! Thank you for your help in making this project better.
#### MIT Licensed
- Distributed under the MIT License, allowing users to freely use, modify, and distribute the software.