# LibreSpeed | Lightweight SpeedTest Implemented In Javascript Using XML Http Request And Web Workers

**URL:** <https://onehack.st/t/librespeed-lightweight-speedtest-implemented-in-javascript-using-xml-http-request-and-web-workers/287957>\
**Category:** Tools & Scripts\
**Tags:** programming, networking, pc-optimization, hosting\
**Created:** [July 30, 2024, 8:04pm UTC](https://onehack.st/t/librespeed-lightweight-speedtest-implemented-in-javascript-using-xml-http-request-and-web-workers/287957 "2024-07-30T20:04:17Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![Aina](https://onehack.st/user_avatar/onehack.st/aina/32/167469_2.png) [@Aina](https://onehack.st/u/Aina)\
**Post date:** [July 30, 2024, 8:04pm UTC](https://onehack.st/t/librespeed-lightweight-speedtest-implemented-in-javascript-using-xml-http-request-and-web-workers/287957/1 "2024-07-30T20:04:17Z")

</div>

![image](https://onehack.st/uploads/default/original/3X/0/c/0c090bb52b69801dbd9c948f252efbc9afb7c786.png)

# LibreSpeed

No Flash, No Java, No Websocket, No Bullshit.

This is a very lightweight speed test implemented in Javascript, using XML Http Request and Web Workers.

## Try it

[Take a speed test](https://librespeed.org/)

## Compatibility

All modern browsers are supported: IE11, latest Edge, latest Chrome, latest Firefox, latest Safari. Works with mobile versions too.

## Features

- Download
- Upload
- Ping
- Jitter
- IP Address, ISP, distance from server (optional)
- Telemetry (optional)
- Results sharing (optional)
- Multiple Points of Test (optional)

[![Screenrecording of a running Speedtest](https://camo.githubusercontent.com/b9d9534bb11024c1a59bc9c460120737b02bb0a256c58a912b5f3bb5d25b402a/68747470733a2f2f7370656564746573742e66646f7373656e612e636f6d2f6d706f745f76362e676966)](https://camo.githubusercontent.com/b9d9534bb11024c1a59bc9c460120737b02bb0a256c58a912b5f3bb5d25b402a/68747470733a2f2f7370656564746573742e66646f7373656e612e636f6d2f6d706f745f76362e676966)

## Server requirements

- A reasonably fast web server with Apache 2 (nginx, IIS also supported)
- PHP 5.4 or newer (other backends also available)
- MySQL database to store test results (optional, Microsoft SQL Server, PostgreSQL and SQLite also supported)
- A fast! internet connection

## Installation

Assuming you have PHP installed, the installation steps are quite simple. I set this up on a QNAP. For this example, I am using a folder called **speedtest** in my web share area.

1. Choose one of the example-xxx.html files in `examples` folder as your index.html if the default index.html does not fit.
2. Add: speedtest.js, speedtest\_worker.js, and favicon.ico to your speedtest folder.
3. Download all of the backend folder into speedtest/backend.
4. Download all of the results folder into speedtest/results.
5. Be sure your permissions allow execute (755).
6. Visit YOURSITE/speedtest/index.html and voila!

### Installation Video

There is a more in-depth installation video here:

- [Quick start installation guide for Ubuntu Server 19.04](https://fdossena.com/?p=speedtest/quickstart_v5_ubuntu.frag)

## Android app

A template to build an Android client for your LibreSpeed installation is available [here](https://github.com/librespeed/speedtest-android).

## CLI client

A command line client is available [here](https://github.com/librespeed/speedtest-cli).

## Docker

A docker image is available on [GitHub](https://github.com/librespeed/speedtest/pkgs/container/speedtest), check our [docker documentation](https://github.com/librespeed/speedtest/blob/master/doc_docker.md) for more info about it.

## Go backend

A Go implementation is available in the [`speedtest-go`](https://github.com/librespeed/speedtest-go) repo, maintained by [Maddie Zhan](https://github.com/maddie).

## Rust backend

A Rust implementation is available in the [`speedtest-rust`](https://github.com/librespeed/speedtest-rust) repo, maintained by [Sudo Dios](https://github.com/sudodios).

## Node.js backend

A partial Node.js implementation is available in the `node` branch, developed by [dunklesToast](https://github.com/dunklesToast). It’s not recommended to use at the moment.

## License

Copyright (C) 2016-2022 Federico Dossena

This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with this program. If not, see [https://www.gnu.org/licenses/lgpl](https://www.gnu.org/licenses/lgpl).

## GitHub:

> **[GitHub - librespeed/speedtest: Self-hosted Speed Test for HTML5 and more. Easy...](https://github.com/librespeed/speedtest)**
>
> Self-hosted Speed Test for HTML5 and more. Easy setup, examples, configurable, mobile friendly. Supports PHP, Node, Multiple servers, and more
