A Node.js module and CLI tool for running network speed tests using the official Ookla Speedtest.net engine.
speedtest-net is a Node.js module and command-line interface that allows developers to run internet speed tests programmatically using the official Ookla Speedtest.net engine. It measures download and upload bandwidth, latency, and jitter, providing results identical to the web-based Speedtest.net service. The tool solves the need for automated, scriptable network performance testing in development and monitoring scenarios.
Node.js developers and system administrators who need to integrate network speed testing into applications, build monitoring tools, or automate performance checks in scripts and CI/CD pipelines.
Developers choose speedtest-net because it provides official, accurate Speedtest.net results through a simple Node.js API, eliminating the need for web scraping or unofficial methods. Its event-driven design and cancellation support offer fine-grained control, making it ideal for automated testing environments.
node.js SpeedTest.net client module
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Uses the official Ookla Speedtest CLI binary, ensuring results are consistent with the web-based Speedtest.net tests, as stated in the README for reliable measurements.
Offers both a Node.js module for programmatic integration and a global CLI tool for terminal use, providing flexibility for different developer workflows and automation scripts.
Emits detailed events for each test phase (config, ping, download, upload) with granular progress data, enabling custom monitoring and UI updates, as demonstrated in the README examples.
Supports custom server selection, network interface binding, and verbosity control via options, allowing tailored testing scenarios like specific server IDs or source IPs.
Provides a makeCancel() function to abort tests programmatically, useful for time-sensitive applications or interactive use cases, with clear error handling in the README.
Requires explicit acceptance of Ookla's EULA, TOS, and GDPR terms, which complicates automated deployments and headless environments, as the README warns it must be done at least once.
Automatic binary management can fail if the process lacks sufficient permissions, potentially requiring manual intervention or custom binary paths, a noted limitation in the README.
High verbosity levels generate numerous log events, which might be excessive for simple use cases and could impact performance or clutter logs in resource-constrained setups.
Tied to Ookla's proprietary engine and servers, meaning changes to their API or binary could break functionality, and there's no option for custom testing algorithms.