◉ Pulse
learnerLj avatar
#53 today ▼ 1

learnerLj/crypto-latency-probe-public

Rust Other

Measure Binance USD-M WebSocket and signed REST latency in microseconds.

Created Jul 22, 2026
Stars
18
Today
+5
Forks
4
Quality
85/100
Momentum
18

README

Fetched from GitHub on Oct 30, 2026, 10:16 PM UTC · README.md

View original on GitHub

Third-party content — Open Source Pulse is not the owner of this repository.

This README belongs to learnerLj/crypto-latency-probe-public and its contributors. We fetch it directly from the project’s public GitHub repository and display it for reference only. All text, code, images and trademarks remain the property of their respective authors. See the repository for its license terms. Copyright / takedown policy.

crypto-latency-probe

A small Rust CLI for comparing Binance USD-M network latency from different machines or cloud locations.

The probe is intentionally narrow:

  • Exchange: Binance USD-M Futures
  • Symbol: BTCUSDT
  • WebSocket: btcusdt@bookTicker
  • Signed REST probe: POST /fapi/v1/order/test
  • Output percentiles: p50_us, p95_us, and p99_us

It never places a real order and does not contain strategy logic.

What is measured

  • time_sync_rtt: GET /fapi/v1/time round-trip, including response decoding. The samples calibrate the local clock against Binance.
  • book_ticker: Binance event time to local receipt time, adjusted by the calibrated clock offset.
  • order_test: local request preparation, parameter serialization, HMAC signing, HTTP round-trip, and response handling for POST /fapi/v1/order/test.

All summaries use microseconds. Binance WebSocket event timestamps and signed-request timestamps remain millisecond-based, so microsecond output provides consistent arithmetic and aggregation, not microsecond source timestamp accuracy.

Run with Cargo

Public market-data mode does not require credentials:

cargo run --release -- --duration-secs 95 --disable-order-test

To include the signed order-test probe:

export BINANCE_API_KEY=...
export BINANCE_API_SECRET=...

cargo run --release -- --duration-secs 95

The default duration is 95 seconds and includes 30 initial server-time samples. Keep only final summaries with:

RUST_LOG='summary=info,crypto_latency_probe=warn' \
  cargo run --release -- --duration-secs 95 --disable-order-test

Run with Docker

Build the image:

docker build -t crypto-latency-probe .

Run without Binance credentials:

docker run --rm crypto-latency-probe \
  --duration-secs 95 \
  --disable-order-test

Run all probes with a local .env file:

docker run --rm --env-file .env crypto-latency-probe \
  --duration-secs 95

For a Linux amd64 image on an arm64 development machine:

docker buildx build --platform linux/amd64 --load \
  -t crypto-latency-probe:linux-amd64 .

Example results

An anonymized two-location comparison is included to show the output and comparison method without publishing server identifiers.

Development

cargo fmt --check
cargo test --locked
cargo clippy --locked --all-targets -- -D warnings
cargo build --release --locked

Requires Rust 1.85 or newer.

License

LGPL-3.0-or-later.

Rendered by GitHub from the repository’s README. Scroll to read the full file.
First trending

Jul 23, 2026

first spotted on the list

Best rank

#15

highest position reached

Appearances

2

times on the trending list

Quality score

85

out of 100

Momentum

18

trend strength indicator

Star velocity

0.18

stars per day since creation

Activity — last 60 days

daily counts, collected every 6 hours
  • Stars
  • Forks
  • Merged PRs
  • Issues
  • Closed issues

Collecting activity data since launch — check back in a few days.

Star history

total stars per snapshot
1214161820learnerLj/crypto-latency-probe-public · Jul 23, 8 AM UTC: 13 starslearnerLj/crypto-latency-probe-public · Jul 23, 2 PM UTC: 18 stars8:35 AM11:22 AM2:09 PM

Rank history

position on trending · lower is better
#1#10#20#30#40#50#60Jul 23, 8 AM UTC: rank #15Jul 23, 2 PM UTC: rank #538:35 AM11:22 AM2:09 PM

3D card for your website

Live HTML card with a glass surface and pointer tilt. Paste the iframe on any website.

<iframe src="https://www.notionpulse.cc/embed/learnerLj/crypto-latency-probe-public" width="420" height="240" style="border:0;max-width:100%;background:transparent" loading="lazy" title="learnerLj/crypto-latency-probe-public — trending on Open Source Pulse"></iframe>

Stars badge

Show current stars in your README or profile. Auto-updates every 6 hours.

learnerLj/crypto-latency-probe-public stars badge
Markdown
[![learnerLj/crypto-latency-probe-public](https://www.notionpulse.cc/api/badge/learnerLj/crypto-latency-probe-public.svg)](https://www.notionpulse.cc/repo/learnerLj/crypto-latency-probe-public)
HTML
<a href="https://www.notionpulse.cc/repo/learnerLj/crypto-latency-probe-public"><img src="https://www.notionpulse.cc/api/badge/learnerLj/crypto-latency-probe-public.svg" alt="learnerLj/crypto-latency-probe-public stars badge" /></a>

Repository of the Day

#15 Repository of the Day

Repository of the Week

#15 Repository of the Week

Repository of the Month

#15 Repository of the Month