I got frustrated wanting to check "internet speed" on various servers so I made a command line client for speedtest.net. If I've learned one thing from this project it's that a "quick hack" can snowball so put more thought into the design upfront than seems necessary at the time.
In particular I think I struggle with the "go way" so any suggestions with creating more idiomatic code would be awesome.
I'd say the two biggest differences is with mine (the Go version) you have a little more control over what you are testing. You can test upload and/or download and/or ping response with a few different algorithms.
The main reason for me (why i created this) is that i wanted to have a binary with no dependencies. Granted Python is pretty much installed everywhere, but this will allow me to run the same binary on Linux, Windows, Mac without the prerequisite of having anything else installed.
I've used one called speedtest-cli on my Digital Ocean Linux boxes - worked very well. Only thing I'm uncertain about is if the server hosting the speed test is on the same network or not...
Sever network speedtest against speedtest.net are, mostly and unfortunately, useless for anything connected at >1Gbps. Here are 5 tests run against (presumably) the same test server from a server connected at 10Gbps writing to an SSD
How does the speedtest website respond to this same test? If you think this is a bug in the code itself (and not just speedtest in general) i'm happy to dig into this. Just open an issue on github.
9 comments
[ 3.4 ms ] story [ 38.8 ms ] threadIn particular I think I struggle with the "go way" so any suggestions with creating more idiomatic code would be awesome.
Thank you!
What's the difference between yours and sivel's? (in addition to Python vs Go)
The main reason for me (why i created this) is that i wanted to have a binary with no dependencies. Granted Python is pretty much installed everywhere, but this will allow me to run the same binary on Linux, Windows, Mac without the prerequisite of having anything else installed.
>Ping (Lowest): 7.41 ms | Download (Max): 269.98 Mbps | Upload (Max): 1260.40 Mbps
>Ping (Lowest): 7.31 ms | Download (Max): 165.27 Mbps | Upload (Max): 183.88 Mbps
>Ping (Lowest): 7.73 ms | Download (Max): 337.67 Mbps | Upload (Max): 222.73 Mbps
>Ping (Lowest): 7.79 ms | Download (Max): 614.26 Mbps | Upload (Max): 594.96 Mbps
>Ping (Lowest): 7.33 ms | Download (Max): 1468.05 Mbps | Upload (Max): 97.49 Mbps
Thanks!