UNPKG

mlab-speed-test

Version:

Test your download and upload speed using speed.measurementlab.net

153 lines (111 loc) 4.32 kB
<div align="center"> # MLab Speed Test ### Test your download and upload speed using [speed.measurementlab.net](https://speed.measurementlab.net/) [![NPM](https://nodei.co/npm/mlab-speed-test.png?compact=true)](https://nodei.co/npm/mlab-speed-test/) <br /> [![](https://img.shields.io/npm/dt/mlab-speed-test.svg?style=flat-square)](https://www.npmjs.com/package/mlab-speed-test) </div> [![NPM Version](https://badgen.net/npm/v/mlab-speed-test)](https://npmjs.org/package/mlab-speed-test) [![Coverage Status](https://coveralls.io/repos/github/pichillilorenzo/mlab-speed-test/badge.svg?branch=main)](https://coveralls.io/github/pichillilorenzo/mlab-speed-test?branch=main) [![license](https://img.shields.io/github/license/pichillilorenzo/mlab-speed-test)](/LICENSE) [![Donate to this project using Paypal](https://img.shields.io/badge/paypal-donate-yellow.svg)](https://www.paypal.me/LorenzoPichilli) ## Getting started To get started with this library, you need to install it and add it to your project. ### Installation ```bash # npm npm install mlab-speed-test --save # yarn yarn add mlab-speed-test ``` ## Library Usage API Reference available at [https://pichillilorenzo.github.io/mlab-speed-test/](https://pichillilorenzo.github.io/mlab-speed-test/). ```javascript import {MLabSpeedTest} from 'mlab-speed-test'; // or const {MLabSpeedTest} = require('mlab-speed-test'); const speedTest = new MLabSpeedTest(); speedTest.on('server-chosen', (serverInfo) => { console.log(serverInfo.location); }); speedTest.on('download-complete', downloadData => { const downloadSpeed = downloadData.LastClientMeasurement ? downloadData.LastClientMeasurement.MeanClientMbps.toFixed(2) : '0'; console.log(downloadSpeed + 'Mb/s'); }); speedTest.on('upload-complete', uploadData => { const uploadSpeed = uploadData.LastServerMeasurement ? (uploadData.LastServerMeasurement.TCPInfo.BytesReceived / uploadData.LastServerMeasurement.TCPInfo.ElapsedTime * 8).toFixed(2) : '0'; console.log(uploadSpeed + 'Mb/s'); }); const exitCode = await speedTest.run(); ``` ## CLI Usage ``` Usage: mlab-speed-test [options] Examples: mlab-speed-test -a -p mlab-speed-test -a -p --json Options: -p, --accept-privacy-policy Accept M-Lab's Privacy Policy (https://www.measurementlab.net/privacy/) (default: false) -a, --autostart Run speed test on command start. Requires --accept-privacy-policy (default: false) --json Output data in json format (default: false) --pretty If json should be pretty formatted (default: false) -h, --help display help for command ``` ## CLI Usage Example #### Example 1 ```bash mlab-speed-test -a -p ``` Example output: ``` M-Lab's Speed Test ⊠ Privacy Policy ( https://www.measurementlab.net/privacy/ ) Test Server: 🖥 Milan, IT ⠸ 65.98 Mb/s ↓ / 17.04 Mb/s ↑ Latency: 26 ms Loss: 1.81% Restart (enter) - Stop (delete) Decline Privacy Policy (a) - Quit (ctrl + q) ``` #### Example 2 ```bash mlab-speed-test -ap --json --pretty ``` Example output: ```json { "privacyPolicyAccepted": true, "running": true, "isDone": false, "downloadSpeed": "64.80", "downloadUnit": "Mb/s", "downloadCompleted": true, "downloadProgress": 1, "uploadSpeed": "16.97", "uploadUnit": "Mb/s", "uploadCompleted": false, "uploadProgress": 0.6515323619008064, "latencyUnit": "ms", "lossUnit": "%", "location": { "city": "Milan", "country": "IT" }, "latency": "51", "loss": "6.57" } ``` ## Contributors Any contribution is appreciated. You can get started with the steps below: 1. Fork [this repository](https://github.com/pichillilorenzo/mlab-speed-test) (learn how to do this [here](https://help.github.com/articles/fork-a-repo)). 2. Clone the forked repository. 3. Make your changes and create a pull request ([learn how to do this](https://docs.github.com/en/github/collaborating-with-issues-and-pull-requests/creating-a-pull-request)) . 4. I will attend to your pull request and provide some feedback. ## License This repository is licensed under the [ISC](LICENSE) License. This project is strongly inspired by the [fast-cli](https://github.com/sindresorhus/fast-cli) package.