# librespeed/speedtest

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/librespeed-speedtest).**

14,851 stars · 2,478 forks · JavaScript · LGPL-3.0

## Links

- GitHub: https://github.com/librespeed/speedtest
- Homepage: https://librespeed.org
- awesome-repositories: https://awesome-repositories.com/repository/librespeed-speedtest.md

## Topics

`hacktoberfest` `html5-speedtest` `internet-speed` `internet-speed-checker` `librespeed` `php` `speedtest` `web-worker` `xhr`

## Description

LibreSpeed is a self-hosted HTML5 network speed test tool used to measure download and upload speeds, ping, and jitter. It operates as a private server for measuring network performance without relying on third-party services.

The system functions as a multi-backend performance tool that executes network tests across different server environments and geographic locations. It supports both PHP and Node.js backends and acts as a network telemetry collector by recording connection metadata and performance metrics into a database for historical analysis and reporting.

The tool provides capabilities for network diagnostics, including measuring performance and tracking connection metadata such as internet service providers and IP addresses. It also enables multi-region network analysis by running tests from multiple locations to compare connectivity across different regions.

## Tags

### Development Tools & Productivity

- [Self-Hosted Servers](https://awesome-repositories.com/f/development-tools-productivity/command-line-network-clients/network-speed-testers/self-hosted-servers.md) — Provides a private server for measuring download and upload performance without relying on third-party services.
- [HTML5 Implementations](https://awesome-repositories.com/f/development-tools-productivity/command-line-network-clients/network-speed-testers/html5-implementations.md) — Implements network speed, ping, and jitter measurements using HTML5 and browser APIs.
- [Multi-Region Speed Tests](https://awesome-repositories.com/f/development-tools-productivity/command-line-network-clients/network-speed-testers/multi-region-speed-tests.md) — Executes performance measurements against several different server points to compare network speeds across different regions. ([source](https://cdn.jsdelivr.net/gh/librespeed/speedtest@master/README.md))

### Networking & Communication

- [Network Throughput Measurement Tools](https://awesome-repositories.com/f/networking-communication/network-throughput-measurement-tools.md) — Quantifies download speed, upload speed, ping, and jitter to evaluate the current quality of an internet connection. ([source](https://cdn.jsdelivr.net/gh/librespeed/speedtest@master/README.md))
- [Round-Trip Time Measurements](https://awesome-repositories.com/f/networking-communication/round-trip-time-measurements.md) — Synchronizes timing and data requests between the browser and server to accurately calculate round-trip time and jitter.
- [Anti-Compression Payload Generation](https://awesome-repositories.com/f/networking-communication/anti-compression-payload-generation.md) — Produces random data streams on the server to prevent compression algorithms from inflating download speed results.
- [Connection Metadata Tracking](https://awesome-repositories.com/f/networking-communication/connection-metadata-tracking.md) — Identifies the user IP address, internet service provider, and physical distance from the test server. ([source](https://cdn.jsdelivr.net/gh/librespeed/speedtest@master/README.md))
- [Multi-Datacenter Coordination](https://awesome-repositories.com/f/networking-communication/multi-datacenter-coordination.md) — Synchronizes timing and data requests across multiple remote endpoints to compare network performance and latency.
- [Network Performance Analysis Tools](https://awesome-repositories.com/f/networking-communication/network-performance-analysis-tools.md) — Executes network tests across different server environments and geographic locations for routing analysis.
- [Random Binary Generators](https://awesome-repositories.com/f/networking-communication/random-binary-generators.md) — Generates random binary data on the fly to prevent compression from skewing download speed measurements.
- [Stateless Network Probes](https://awesome-repositories.com/f/networking-communication/stateless-network-probes.md) — Uses standard HTTP requests to send and receive data buffers without requiring persistent socket connections for tests.

### Software Engineering & Architecture

- [Throughput Measurement](https://awesome-repositories.com/f/software-engineering-architecture/monotonic-time-measurement/throughput-measurement.md) — Calculates network throughput and latency by timing the transfer of data chunks via browser APIs.
- [Language-Agnostic Measurement Layers](https://awesome-repositories.com/f/software-engineering-architecture/execution-engines/backend-agnostic-execution-layers/language-agnostic-measurement-layers.md) — Implements core measurement logic across both PHP and Node.js backends using a consistent interface.

### System Administration & Monitoring

- [Internet Performance Monitors](https://awesome-repositories.com/f/system-administration-monitoring/internet-performance-monitors.md) — Tracks ping, jitter, and bandwidth over time to identify network instability or service provider performance drops.
- [Telemetry Collection](https://awesome-repositories.com/f/system-administration-monitoring/telemetry-collection.md) — Gathers network performance metrics and test results in a database for long-term analysis. ([source](https://cdn.jsdelivr.net/gh/librespeed/speedtest@master/README.md))
- [Telemetry Collectors](https://awesome-repositories.com/f/system-administration-monitoring/telemetry-collectors.md) — Records connection metadata and performance metrics into a database for historical analysis and reporting.

### Data & Databases

- [Telemetry Persistence](https://awesome-repositories.com/f/data-databases/relational-database-storage/telemetry-persistence.md) — Persists test results and connection metadata to a relational database for historical analysis and reporting.
- [Test Result Persistence](https://awesome-repositories.com/f/data-databases/result-persistence-layers/test-result-persistence.md) — Stores test results and connection metadata in a database for auditing and long-term trend monitoring.

### Web Development

- [Interchangeable Backend Implementations](https://awesome-repositories.com/f/web-development/server-side-frameworks/server-side-runtimes/interchangeable-backend-implementations.md) — Provides the capability to swap the entire backend implementation between PHP and Node.js while preserving functional behavior.
