Skip to content

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.

License

Notifications You must be signed in to change notification settings

felipealfonsog/SpeedyNet

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

89 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SpeedyNet 🌐🔗 (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.

Version Main Language Open Source? Yes!

MIT license

Vim Powered VS Code Powered

Screenshot in macOS

Screenshot

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)

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

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.

Buy Me a Coffee PayPal GitHub Sponsors

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.

About

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.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published