Check your internet speed/bandwidth right from your terminal. Built on GOlang using chromedp


Keywords
adhocore, benchmark, chrome, chrome-browser, chrome-headless, chromedp, fast, go, golang, hacktoberfest, hacktoberfest2022, internet-speed, internet-speed-checker, speed-checker
License
MIT
Install
go get github.com/adhocore/fast

Documentation

adhocore/fast

Go Report Lint Donate 15 Donate 25 Donate 50 Tweet

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

FAST

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.