librespeed-common: add measurement backend - #30294
Open
BKPepe wants to merge 1 commit into
Open
Conversation
1 task
BKPepe
force-pushed
the
librespeed-common
branch
from
August 17, 2026 20:18
ab79789 to
2e9ea45
Compare
BKPepe
force-pushed
the
librespeed-common
branch
2 times, most recently
from
August 17, 2026 21:03
0125707 to
cf9efc5
Compare
Add a common backend for running librespeed-cli measurements on a router. The package provides a locked measurement runner, live progress state, and an rpcd ucode plugin exposing start/stop/status/result/history/config over ubus. Scheduled measurements are managed through cron and can run within a configurable time window. Optional daily aggregation keeps longer-term history compact. Raw measurements are kept in JSONL for a configurable retention period. When persistent archive storage is configured, completed days are reduced to daily min/avg/max values. Signed-off-by: Josef Schlehofer <pepe.schlehofer@gmail.com>
BKPepe
force-pushed
the
librespeed-common
branch
from
August 17, 2026 21:27
cf9efc5 to
44917b1
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
📦 Package Details
Maintainer: @BKPepe
Description:
Backend for running librespeed-cli measurements on a router: a locked runner with live progress state, an rpcd ucode plugin exposing start/stop/status/result/history/config over ubus, cron scheduling within a configurable time window, and optional daily min/avg/max aggregation of JSONL history.
Live progress uses
--json-stream, proposed for the Go client in librespeed/speedtest-cli#145 (the Rust port will ship the same flag once reviewed and merged in GO) with a client without it the runner falls back to interface counter sampling.Companion frontend: openwrt/luci#8951.
cc @shenek: This covers similar ground as the Foris Controller librespeed module;. The server list URL is configurable (
option server_list), so a Turris deployment can keep using https://librespeed.turris.cz/servers.json.cc @aleksan4eg: the reForis integration could be reworked on top of this ubus API.
🧪 Run Testing Details
Compile tested for powerpc_8548. Run tested on the device: measurements over ubus and LuCI (start/stop/status/result), streamed progress and the interface-counter fallback, scheduled runs within an hour window, history with daily aggregation, and server list caching including a custom
server_listURL.✅ Formalities