Awesome
adhocore/fast
<!-- [![Donate 15](https://img.shields.io/badge/donate-paypal-blue.svg?style=flat-square&label=donate+15)](https://www.paypal.me/ji10/15usd) [![Donate 25](https://img.shields.io/badge/donate-paypal-blue.svg?style=flat-square&label=donate+25)](https://www.paypal.me/ji10/25usd) [![Donate 50](https://img.shields.io/badge/donate-paypal-blue.svg?style=flat-square&label=donate+50)](https://www.paypal.me/ji10/50usd) -->A GO lang command line tool to check internet speed right from the terminal.
Uses fast.com through headless chrome.
Prerequistie
Chrome or Chromium or Brave browser must be installed. chromedp
will try to locate the chrome executable automatically from these paths.
If you get error regarding chrome availability, and you have chrome in custom path then check Troubleshooting.
Usage
Install fast
binary:
go get -u github.com/adhocore/fast/cmd/fast
or in recent go versions:
go install github.com/adhocore/fast/cmd/fast@v1.2.0
Finally, make sure $GOPATH
or $HOME/go/bin
is in your $PATH
or %path%
, then run:
fast
# if you just want download speed (pass -noup aka no upload speed)
fast -noup
Wait a while or Ctrl+C
if you can't. That's all.
Integration
You can also integrate fast
in your Go projects.
import (
"github.com/adhocore/chin"
"github.com/adhocore/fast"
)
// true if you want only download speed
noUpload := false
// Optional, shows a spinner while waiting result,
spin := chin.New()
go spin.Start()
// Prints the output right away:
fast.Run(noUpload)
// OR, to customize print style:
res, err := fast.Measure(noUpload)
// Then use res (`fast.Fast` struct) to print in custom style.
// Stop the spinner finally!
spin.Stop()
Screen
Troubleshooting
In MacOS, you can do something like this:
echo '#!/bin/sh\n\n/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome $@' > /usr/local/bin/chrome
chmod +x /usr/local/bin/chrome
In WSL, you can symlink chrome from host WinOS like this:
sudo ln -s /mnt/c/Program\ Files/Google/Chrome/Application/chrome.exe /usr/local/bin/chrome
In other OS, you can do something equivalent to above. The idea is chrome
command should point to Chrome Browser.
Other projects
My other golang projects you might find interesting and useful:
- gronx - Lightweight, fast and dependency-free Cron expression parser (due checker), task scheduler and/or daemon for Golang (tested on v1.13 and above) and standalone usage.
- urlsh - URL shortener and bookmarker service with UI, API, Cache, Hits Counter and forwarder using postgres and redis in backend, bulma in frontend; has web and cli client
- goic - Go Open ID Connect, is OpenID connect client library for Golang, supports the Authorization Code Flow of OpenID Connect specification.
- chin - A GO lang command line tool to show a spinner as user waits for some long running jobs to finish.