fb7575b67b
* put code to insert and query data from database into separate file * simplify obfuscation salt file handling * use new DB interaction functions in telemetry.php * use new DB interaction functions in stats.php and fix indentation levels * format telemetry settings file * use new function for interacting with DB in index.php * move drawing of the image into function and try to comment each section with what it does * reorder lines for parts of the image to align with the order they appear on the image * bugfix: display obfuscated and deobfuscated id in stats if id obfuscation is enabled * improve error handling * add missing PHPDocs to functions * imageftbbox returns an array on success and false on failure so to check if the font is usable, check if we got an array * fix dsn for postgres * fix limit sql statement for postgresql * remove obsolete require statement * use require instead of require_once since the settings file might need to be loaded multiple times because it just contains plain variables which will just get loaded into the current scope * move require statements to the top of the file * make sure files are readable before requiring them * add constant to refer to the telemetry settings file and check if it is readable before loading it * return null if no speedtest result was found for the given id and show according message to the user instead of just exiting * use existing constant instead of string for telemetry settings file name * uniformly use single quotes instead of double quotes as most code places already used single quotes * somehow some tabs sneaked in, replace them to uniformly use spaces * mysql now uses pdo, too, reflect that in the requirements documentation * pass username and password as constructor parameters instead of via DSN |
||
---|---|---|
.github/ISSUE_TEMPLATE | ||
.logo | ||
backend | ||
results | ||
.gitignore | ||
doc.md | ||
example-multipleServers-full.html | ||
example-multipleServers-pretty.html | ||
example-singleServer-basic.html | ||
example-singleServer-chart.html | ||
example-singleServer-customSettings.html | ||
example-singleServer-full.html | ||
example-singleServer-gauges.html | ||
example-singleServer-pretty.html | ||
example-singleServer-progressBar.html | ||
favicon.ico | ||
LICENSE | ||
README.md | ||
speedtest.js | ||
speedtest_worker.js |
LibreSpeed
No Flash, No Java, No Websocket, No Bullshit.
This is a very lightweight Speedtest implemented in Javascript, using XMLHttpRequest and Web Workers.
Try it
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)
Server requirements
- A reasonably fast web server with Apache 2 (nginx, IIS also supported)
- PHP 5.4 (other backends also available)
- MySQL database to store test results (optional, PostgreSQL and SQLite also supported)
- A fast! internet connection
Installation videos
Android app
A template to build an Android client for your LibreSpeed installation is available here.
Docker
Please see the docker
branch
Go backend
A Go implementation is available in the speedtest-go
repo, maintained by Maddie Zhan.
Node.js backend
A partial Node.js implementation is available in the node
branch, developed by dunklesToast. It's not recommended to use at the moment.
Donate
License
Copyright (C) 2016-2020 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.