To get started with this library, you need to install it and add it to your project.
# npm
npm install mlab-speed-test --save
# yarn
yarn add mlab-speed-test
API Reference available at https://pichillilorenzo.github.io/mlab-speed-test/.
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();
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
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)
mlab-speed-test -ap --json --pretty
Example output:
{
"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"
}
Any contribution is appreciated. You can get started with the steps below:
-
Fork this repository (learn how to do this here).
-
Clone the forked repository.
-
Make your changes and create a pull request (learn how to do this) .
-
I will attend to your pull request and provide some feedback.
This repository is licensed under the ISC License.
This project is strongly inspired by the fast-cli package.