80 lines
2.5 KiB
Markdown
80 lines
2.5 KiB
Markdown
# speedtest-rs
|
|
|
|
This is a lightweight backend written in Rust for [Librespeed](https://github.com/librespeed/speedtest).
|
|
|
|
Fork from: https://github.com/camilohe/speedtest-rs.git
|
|
|
|
Original repos: https://github.com/drobson03/speedtest-rs.git
|
|
|
|
## Compatibility
|
|
Supported by all Librespeed frontends, though some features are missing (see below).
|
|
|
|
## Features
|
|
|
|
- [x] Download
|
|
- [x] Upload
|
|
- [x] Ping
|
|
- [x] Jitter
|
|
- [x] IP Address, ISP
|
|
- [x] Multiple Points of Test (optional)
|
|
- [x] Compatible with PHP frontend predefined endpoints (with `.php` suffixes)
|
|
- [x] Distance from server (optional)
|
|
- [ ] Telemetry (optional)
|
|
- [ ] Results sharing (optional)
|
|
- [ ] [Proxy Protocol](https://www.haproxy.org/download/2.3/doc/proxy-protocol.txt)?
|
|
|
|
## Server requirements
|
|
* A Rust supported platform
|
|
* A fast! Internet connection
|
|
|
|
## Installation
|
|
|
|
You need Rust 1.55+ to compile the binary.
|
|
|
|
1. Clone this repository:
|
|
|
|
```bash
|
|
git clone https://cloud.silique.fr/gitea/Silique/speedtest-rs.git
|
|
# Change current working directory to the repository
|
|
cd speedtest-rs
|
|
```
|
|
|
|
2. Build before running
|
|
```bash
|
|
# Compile to target/release/speedtest-rs
|
|
cargo build --release
|
|
```
|
|
|
|
3. Copy the `assets` directory and the compiled `speedtest-rs` binary into a single directory.
|
|
|
|
4. Put `assets` folder under the same directory as your compiled binary.
|
|
- Make sure font files and JavaScript files are in the `assets` directory
|
|
- You can have multiple HTML pages under `assets` directory. They can be access directly under the server root
|
|
(e.g. `/example-singleServer-full.html`)
|
|
- It's possible to have a default page mapped to `/`, simply put a file named `index.html` under `assets`
|
|
|
|
5. Launch: ./speedtest-rs
|
|
|
|
## Differences between Go and PHP implementation
|
|
|
|
- FAST (no garbage collector unlike Go)
|
|
|
|
## License
|
|
Copyright (C) 2016-2021 Federico Dossena
|
|
|
|
Copyright (C) 2021 Darcy Robson
|
|
|
|
Copyright (C) 2022 Emmanuel Garette
|
|
|
|
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>.
|