Home

Awesome

adhocore/fast

Go Report Lint Tweet Support

<!-- [![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

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: