All Projects β†’ librespeed β†’ Speedtest Cli

librespeed / Speedtest Cli

Licence: lgpl-3.0
Command line client for LibreSpeed

Programming Languages

go
31211 projects - #10 most used programming language

Labels

Projects that are alternatives of or similar to Speedtest Cli

CloudflareSpeedTest
πŸŒ©γ€Œθ‡ͺι€‰δΌ˜ι€‰ IP」桋试 Cloudflare CDN ε»ΆθΏŸε’Œι€ŸεΊ¦οΌŒθŽ·ε–ζœ€εΏ« IP (IPv4 / IPv6)οΌε¦ε€–δΉŸζ”―ζŒε…Άδ»– CDN / 网站 IP ~
Stars: ✭ 5,092 (+5043.43%)
Mutual labels:  speedtest
internet-speed-testing
Library for measure your internet speed. [for android app]
Stars: ✭ 40 (-59.6%)
Mutual labels:  speedtest
Speedtest
A way to run speed tests on Docker.
Stars: ✭ 72 (-27.27%)
Mutual labels:  speedtest
Nano-SpeedTest
Webapp to test speed of Nano Transactions
Stars: ✭ 26 (-73.74%)
Mutual labels:  speedtest
speedtest
Simple bandwidth test in browser javascript
Stars: ✭ 41 (-58.59%)
Mutual labels:  speedtest
Speed Test
Test your internet connection speed and ping using speedtest.net from the CLI
Stars: ✭ 3,654 (+3590.91%)
Mutual labels:  speedtest
zabbix-template-speedtest
Speedtest template for zabbix
Stars: ✭ 28 (-71.72%)
Mutual labels:  speedtest
Internet Speedtest Docker
Internet testing running on Docker Compose.
Stars: ✭ 88 (-11.11%)
Mutual labels:  speedtest
speedtest-for-digitalocean
Run speed tests for all DigitalOcean datacenters faster than ever.
Stars: ✭ 40 (-59.6%)
Mutual labels:  speedtest
Nench
VPS benchmark script β€” based on the popular bench.sh, plus CPU and ioping tests, and dual-stack IPv4 and v6 speedtests by default
Stars: ✭ 611 (+517.17%)
Mutual labels:  speedtest
docker-internet-speedtest-dashboard
Docker based Internet Speedtest Dashboard powered by InfluxDB, Chronograf, and Speedtest-CLI
Stars: ✭ 15 (-84.85%)
Mutual labels:  speedtest
open-rmbt
RTR-NetTest Open Source repository
Stars: ✭ 30 (-69.7%)
Mutual labels:  speedtest
Speedtest
Command line client for speedtest.net written in Go
Stars: ✭ 361 (+264.65%)
Mutual labels:  speedtest
SpeedTest-php
a speedtest php site
Stars: ✭ 28 (-71.72%)
Mutual labels:  speedtest
Speedtest
HTML5 speedtest, javascript client and golang server. Responsive interface, can be used on desktop, tablets and phones. Uses the same algorithm as Ookla / speedtest.net, and gives approximately the same results.
Stars: ✭ 77 (-22.22%)
Mutual labels:  speedtest
speedtest-android
Android app template for Librespeed servers
Stars: ✭ 209 (+111.11%)
Mutual labels:  speedtest
Speed Test Lib
☁️ JSpeedTest : speed test client library for Java/Android
Stars: ✭ 273 (+175.76%)
Mutual labels:  speedtest
Spdtest.sh
Internet speed reability tester
Stars: ✭ 95 (-4.04%)
Mutual labels:  speedtest
Homebox
A Toolbox for Home Local Networks
Stars: ✭ 78 (-21.21%)
Mutual labels:  speedtest
Yet Another Bench Script
YABS - a simple bash script to estimate Linux server performance using fio, iperf3, & Geekbench
Stars: ✭ 348 (+251.52%)
Mutual labels:  speedtest

LibreSpeed Logo

LibreSpeed command line tool

Don't have a GUI but wants to use LibreSpeed servers to test your Internet speed? πŸš€

librespeed-cli comes to rescue!

This is a command line interface for LibreSpeed speed test backends, written in Go.

Features

  • Ping
  • Jitter
  • Download
  • Upload
  • IP address
  • ISP Information
  • Result sharing (telemetry) [optional]
  • Test with multiple servers in a single run
  • Use your own server list or telemetry endpoints
  • Tested with PHP and Go backends

asciicast

Requirements for compiling

  • Go 1.14+

Runtime requirements

Use prebuilt binaries

If you don't want to build librespeed-cli yourself, you can find different binaries compiled for various platforms in the releases page.

Building librespeed-cli

  1. First, you'll have to install Go (at least version 1.11). For Windows users, you can download an installer from golang.org. For Linux users, you can use either the archive from golang.org, or install from your distribution's package manager.

    For example, Arch Linux:

    # pacman -S go
    
  2. Then, clone the repository:

    $ git clone -b v1.0.0 https://github.com/librespeed/speedtest-cli
    
  3. After you have Go installed on your system (and added to your $PATH if you're using the archive from golang.org), you can now proceed to build librespeed-cli with the build script:

    $ cd speedtest-cli
    $ ./build.sh
    

    If you want to build for another operating system or system architecture, use the GOOS and GOARCH environment variables. Run go tool dist list to get a list of possible combinations of GOOS and GOARCH.

    Note: Technically, the CLI can be compiled with older Go versions that support Go modules, with GO111MODULE=on set. If you're compiling with an older Go runtime, you might have to change the Go version in go.mod.

    # Let's say we're building for 64-bit Windows on Linux
    $ GOOS=windows GOARCH=amd64 ./build.sh
    
  4. When the build script finishes, if everything went smoothly, you can find the built binary under directory out.

    $ ls out
    librespeed-cli-windows-amd64.exe
    
  5. Now you can use the librespeed-cli and test your Internet speed!

Install from AUR

To install librespeed-cli from AUR, use your favorite AUR helper and install package librespeed-cli-bin

$ yay librespeed-cli-bin

... or, clone it and build it yourself:

$ git clone https://aur.archlinux.org/librespeed-cli-bin.git
$ cd librespeed-cli-bin
$ makepkg -si

Install from Homebrew

See the librespeed-cli Homebrew tap.

Usage

You can see the full list of supported options with librespeed-cli -h:

$ librespeed-cli -h
NAME:
   librespeed-cli - Test your Internet speed with LibreSpeed πŸš€

USAGE:
   librespeed-cli [global options] [arguments...]

GLOBAL OPTIONS:
   --help, -h                     show help (default: false)
   --version                      Show the version number and exit (default: false)
   --ipv4, -4                     Force IPv4 only (default: false)
   --ipv6, -6                     Force IPv6 only (default: false)
   --no-download                  Do not perform download test (default: false)
   --no-upload                    Do not perform upload test (default: false)
   --concurrent value             Concurrent HTTP requests being made (default: 3)
   --bytes                        Display values in bytes instead of bits. Does not affect
                                  the image generated by --share, nor output from
                                  --json or --csv (default: false)
   --mebibytes                    Use 1024 bytes as 1 kilobyte instead of 1000 (default: false)
   --distance value               Change distance unit shown in ISP info, use 'mi' for miles,
                                  'km' for kilometres, 'NM' for nautical miles (default: "km")
   --share                        Generate and provide a URL to the LibreSpeed.org share results
                                  image, not displayed with --csv (default: false)
   --simple                       Suppress verbose output, only show basic information
                                   (default: false)
   --csv                          Suppress verbose output, only show basic information in CSV
                                  format. Speeds listed in bit/s and not affected by --bytes
                                   (default: false)
   --csv-delimiter CSV_DELIMITER  Single character delimiter (CSV_DELIMITER) to use in
                                  CSV output. (default: ",")
   --csv-header                   Print CSV headers (default: false)
   --json                         Suppress verbose output, only show basic information
                                  in JSON format. Speeds listed in bit/s and not
                                   affected by --bytes (default: false)
   --list                         Display a list of LibreSpeed.org servers (default: false)
   --server SERVER                Specify a SERVER ID to test against. Can be supplied
                                  multiple times. Cannot be used with --exclude
   --exclude EXCLUDE              EXCLUDE a server from selection. Can be supplied
                                  multiple times. Cannot be used with --server
   --server-json value            Use an alternative server list from remote JSON file
   --local-json value             Use an alternative server list from local JSON file
   --source SOURCE                SOURCE IP address to bind to
   --timeout TIMEOUT              HTTP TIMEOUT in seconds. (default: 15)
   --secure                       Use HTTPS instead of HTTP when communicating with
                                  LibreSpeed.org operated servers (default: false)
   --no-pre-allocate              Do not pre allocate upload data. Pre allocation is
                                  enabled by default to improve upload performance. To
                                  support systems with insufficient memory, use this
                                  option to avoid out of memory errors (default: false)
   --telemetry-json value         Load telemetry server settings from a JSON file. This
                                  options overrides --telemetry-level, --telemetry-server,
                                  --telemetry-path, and --telemetry-share. Implies --share
   --telemetry-level value        Set telemetry data verbosity, available values are:
                                  disabled, basic, full, debug. Implies --share
   --telemetry-server value       Set the telemetry server base URL. Implies --share
   --telemetry-path value         Set the telemetry upload path. Implies --share
   --telemetry-share value        Set the telemetry share link path. Implies --share
   --telemetry-extra value        Send a custom message along with the telemetry results.
                                  Implies --share

Use a custom backend server list

The librespeed-cli supports loading custom backend server list from a JSON file (remotely via --server-json or locally via --local-json). The format is as below:

[
  {
    "id": 1,
    "name": "PHP Backend",
    "server": "https://example.com/",
    "dlURL": "garbage.php",
    "ulURL": "empty.php",
    "pingURL": "empty.php",
    "getIpURL": "getIP.php"
  },
  {
    "id": 2,
    "name": "Go Backend",
    "server": "http://example.com/speedtest/",
    "dlURL": "garbage",
    "ulURL": "empty",
    "pingURL": "empty",
    "getIpURL": "getIP"
  }
]

As you can see in the example, all servers have their schemes defined. In case of undefined scheme (e.g. //example.com), librespeed-cli will use http by default, or https when the --secure option is enabled.

Use a custom telemetry server

By default, the telemetry result will be sent to librespeed.org. You can also customize your telemetry settings via the --telemetry prefixed options. In order to load a custom telemetry endpoint configuration, you'll have to use the --telemetry-json option to specify a local JSON file containing the configuration bits. The format is as below:

{
  "telemetryLevel": "full",
  "server": "https://example.com",
  "path": "/results/telemetry.php",
  "shareURL": "/results/"
}

For telemetryLevel, four values are available:

  • disabled to disable telemetry
  • basic to enable telemetry with result only)
  • full to enable telemetry with result and timing
  • debug to enable the most verbose telemetry information

server defines the base URL for the backend's endpoints. path is the path for uploading the telemetry result, and shareURL is the path for fetching the uploaded result in PNG format.

Currently, --telemetry-json only supports loading a local JSON file.

Bugs?

Although we have tested the cli, it's still in its early days. Please open an issue if you encounter any bugs, or even better, submit a PR.

How to contribute

If you have some good ideas on improving librespeed-cli, you can always submit a PR via GitHub.

License

librespeed-cli is licensed under GNU Lesser General Public License v3.0

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].