Skip to main content

RMBT network measurement client — performs ping, download, and upload speed tests against an RMBT measurement server

Project description

rmbt-client (Python)

RMBT network measurement client written in Python. Performs ping, download, and upload phases against an RMBT measurement server and submits results to the control server.

Requirements

  • Python 3.7+
  • No third-party dependencies (stdlib only: ssl, socket, threading, urllib)

Usage

python -m rmbt_client --host https://measure.example.com

Run with a specific thread count and duration:

python -m rmbt_client --host https://measure.example.com --threads 4 --duration 10

Skip TLS verification against a local test server:

python -m rmbt_client --host https://localhost:8080 --no-tls-verify

Options

Flag Description
-h, --host URL Control server base URL (required)
-p, --port PORT Override test server port
-u, --uuid UUID Client UUID (uses/creates ~/.rmbt_client_uuid if omitted)
-t, --threads N Force thread count for download and upload (overrides pre-test)
-d, --duration SECS Test duration in seconds (default: from control server)
--ws Use WebSocket (RMBTws) framing instead of plain HTTP upgrade
--http Use plain HTTP upgrade (RMBThttp) — overrides auto-detection
--no-tls-verify Skip TLS certificate verification (insecure)
--debug Print control server request/response JSON
--intermediate Print upload throughput every 40 ms per thread
--help Print help

Protocol

  1. POST /RMBTControlServer/settings → register client, receive UUID
  2. POST /RMBTControlServer/testRequest → receive token, server address, thread count
  3. Pre-test: 2-second single-thread GETCHUNKS download to determine chunk size and thread counts
  4. Ping: 1 s / 10–100 pings
  5. Download: multi-threaded GETTIME, all threads start simultaneously via threading.Barrier
  6. Upload: multi-threaded PUTNORESULT
  7. POST /RMBTControlServer/result

Supports both RMBThttp (plain HTTP upgrade) and RMBTws (WebSocket) variants.
TLS via the stdlib ssl module; control server HTTPS via urllib.request.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rmbt_client-1.0.0.tar.gz (10.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

rmbt_client-1.0.0-py3-none-any.whl (13.1 kB view details)

Uploaded Python 3

File details

Details for the file rmbt_client-1.0.0.tar.gz.

File metadata

  • Download URL: rmbt_client-1.0.0.tar.gz
  • Upload date:
  • Size: 10.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for rmbt_client-1.0.0.tar.gz
Algorithm Hash digest
SHA256 1b90832682a30a086458307c2dc77b11d96f348451fdf437cb252bf6fda25ee0
MD5 828743504681bdc33b797e0ad7346f62
BLAKE2b-256 5cb4c11e4c305b6aca6cb866231e5a38f110e8bea29ca34b324886a605b1ce7a

See more details on using hashes here.

Provenance

The following attestation bundles were made for rmbt_client-1.0.0.tar.gz:

Publisher: publish-python.yml on raaaimund/open-rmbt-client-cli

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rmbt_client-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: rmbt_client-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 13.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for rmbt_client-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ceb18c3808c5522fe3e6f0d7e7abd2f609e1666c43f014e299f44f557273086b
MD5 a6f14fb50e84fc400ce485009c4cc31e
BLAKE2b-256 9dd59a17d7e1c98b91de986839cc0aa94ae2bd4afae7bcc435ca28c6f7e82e59

See more details on using hashes here.

Provenance

The following attestation bundles were made for rmbt_client-1.0.0-py3-none-any.whl:

Publisher: publish-python.yml on raaaimund/open-rmbt-client-cli

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page