An open API service indexing awesome lists of open source software.

https://github.com/pichillilorenzo/mlab-speed-test

Test your download and upload speed using speed.measurementlab.net
https://github.com/pichillilorenzo/mlab-speed-test

bandwidth check cli cli-app connection down download internet mbps measure mlab mlab-speed-test ndt7 speed speed-test speedtest test tester up upload

Last synced: about 1 year ago
JSON representation

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

Awesome Lists containing this project

README

          

# 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/)


[![](https://img.shields.io/npm/dt/mlab-speed-test.svg?style=flat-square)](https://www.npmjs.com/package/mlab-speed-test)

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