https://github.com/claytonblythe/fastcli
A command line interface for internet speed test written in Go and using fast.com
https://github.com/claytonblythe/fastcli
fast go golang speedtest speedtest-cli speedtest-framework wifi wifi-network
Last synced: 14 days ago
JSON representation
A command line interface for internet speed test written in Go and using fast.com
- Host: GitHub
- URL: https://github.com/claytonblythe/fastcli
- Owner: claytonblythe
- Created: 2020-08-08T04:23:03.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2022-05-27T18:59:08.000Z (over 3 years ago)
- Last Synced: 2024-06-20T12:50:00.384Z (over 1 year ago)
- Topics: fast, go, golang, speedtest, speedtest-cli, speedtest-framework, wifi, wifi-network
- Language: Go
- Homepage:
- Size: 339 KB
- Stars: 4
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
## fastcli
fastcli is a command line interface (CLI) for doing network testing and speedtesting, written in Go and utilizing http://fast.com/. It is memory efficient, performant, and descriptive in the information that it provides, while using best practices for concurrent programming in Go. Information includes test servers/locations used, Round Trip Time (RTT), Client IP Address & Location, [fast.com](http://fast.com/) token endpoint used, test duration, data downloaded, and speed in Megabits per second. A comparable result is achieved similar to running the test in Chrome, though fastcli may provide more detailed information.
### Installation
Assuming you already have Golang installed on your machiine, simply run
```
go install github.com/claytonblythe/fastcli@latest
```
### Usage
```
fastcli
```
### Visual Output
```
~ $ fastcli
Connecting to fast.com...
Connecting to test servers...
Server locations:
Seattle, US, https://ipv4-c149-sea001-ix.1.oca.nflxvideo.net/speedtest?c=us&n=46562&v=5&e=1596865919&t=BoUeqjkOueI6QIoXYIE_wVhv40I, 92ms Avg RTT
Seattle, US, https://ipv4-c110-sea001-ix.1.oca.nflxvideo.net/speedtest?c=us&n=46562&v=5&e=1596865919&t=scmOHag68yXZtAYGYDOXrwnoohg, 95ms Avg RTT
San Jose, US, https://ipv4-c650-sjc002-dev-ix.1.oca.nflxvideo.net/speedtest?c=us&n=46562&v=5&e=1596865919&t=YxBcK84F3FlR4ereZHdeR87G5Ic, 116ms Avg RTT
San Jose, US, https://ipv4-c179-sjc002-ix.1.oca.nflxvideo.net/speedtest?c=us&n=46562&v=5&e=1596865919&t=iygQP9ZwD4-Q465vnOw9Ig9G8lw, 122ms Avg RTT
Los Angeles, US, https://ipv4-c012-lax009-ix.1.oca.nflxvideo.net/speedtest?c=us&n=46562&v=5&e=1596865919&t=z0n8tsHHGk-32rZkO3AtAz3zuFo, 129ms Avg RTT
Testing Download Speed...
Client: Seattle, US, 104.200.138.201
Fast.com endpoint: https://api.fast.com/netflix/speedtest/v2?https=true&token=YXNkZmFzZGxmbnNkYWZoYXNkZmhrYWxm&urlCount=5
Duration: 43.58 seconds
Data downloaded: 125.00 MB
Speed: 24.06 Mbps
```

### Next Steps
- Add Upload Speed Support
- Add concurrent pinging of test servers
- IPv6 support
- Determine optimal # of go coroutines/concurrent urls
- Modularize code