Releases: Jorji49/streamtop
Release list
v1.5.0
streamtop v1.5.0
Hardened wire-probe CLI: pruned speculative QoE simulation, legacy export shims, and noop flags. Summary schema v6.
Changes
- Removed
--simulate-player/ throttle / RTT andsynthetic_qoefrom summary, metrics, and TUI - Removed legacy
--export-*shims and CLI aliases (--metrics-port,range-probe,matrix,headless) - Removed noop
--prefer-http2 - Reason code
ERR_TCP_IO_RESETreplacesERR_DPI_TCP_RESET - Docker build includes
.cargo/config.tomlfor HTTP/3 (reqwest_unstable) - Docs trimmed: no persona table, no SEO keyword block
Install
cargo install streamtop --version 1.5.0GitHub Release binaries: https://github.com/Jorji49/streamtop/releases/tag/v1.5.0
v1.4.0
streamtop v1.4.0
Terminal HLS, DASH, IPTV, and WHEP stream diagnostics with wire probes, CI export formats, and Prometheus metrics.
Highlights
Transport safety
- Bounded reads on infinite chunked MPEG-TS responses (
PROBE_READ_TIMEOUT_SECS = 4s) - Same-origin redirect token preservation; loop detection (
ERR_HTTP_REDIRECT_LOOP) - SSRF pinning unchanged for webhooks, DRM, and OTLP endpoints
CI integration
- SARIF 2.1.0:
--summary-format sarifor--export sarif:FILEfor GitHub Code Scanning - GitHub Actions step summary: auto-write SHI, RTF, Part RTF, TR 101 290, ABR, and budget tables when
GITHUB_STEP_SUMMARYis set - Stream budget:
--budget-max-rtf,--budget-max-ttfb,--budget-max-cc-errors,--budget-max-driftwith JSON PASS/FAIL verdict - Unified export:
--export report-html|report-json|curl|har|incident|grafana|sarif[:FILE]
Protocol expansion
- LL-HLS parts:
#EXT-X-PART/PRELOAD-HINTpart TTFB, Part RTF,streamtop_part_dl_duration_ratio - DoH timing:
--doh-provider cloudflare|google|<URL>,doh_msin wire timing,streamtop_dns_doh_duration_seconds - WHEP probe: sub-second SDP signaling check (201/200 answer, codecs, ICE, stream IDs)
- AES-128-CBC probe decrypt: in-memory
#EXT-X-KEYfetch for encrypted TS/fMP4 wire analysis
Transport and CDN
- HTTP/3 (QUIC) telemetry: reqwest
http3+ ALPN; handshake timing on h3; Prometheusstreamtop_http_version,streamtop_quic_handshake_seconds,streamtop_quic_stream_resets_total - Multi-CDN skew:
--multi-cdn URL1,URL2,...,--max-cdn-skew-ms, matrix TUI,ERR_CDN_SYNC_SKEW - Middlebox heuristics wired:
ERR_DPI_TCP_RESET, redirect cycle/limitERR_HTTP_REDIRECT_LOOP - Zero-heap TUI:
UiRenderCachestores pre-built Status and Last SegmentParagraphwidgets; draw borrows without per-frame allocation - Summary JSON schema v5:
http_version,transfer_ms,multi_cdn_skew;ingest_statsremoved
Key CLI flags
| Flag | Purpose |
|---|---|
--export FORMAT[:FILE] |
Unified export (see formats above) |
--doh-provider PROVIDER |
DoH lookup (cloudflare, google, or custom JSON URL) |
--summary-format sarif |
SARIF 2.1.0 on stdout |
--github-step-summary FILE |
GHA step summary markdown |
--budget-max-rtf RATIO |
CI budget: max segment RTF |
--budget-max-ttfb DURATION |
CI budget: max TTFB (250ms, 2s) |
--budget-max-cc-errors N |
CI budget: TR 101 290 CC errors |
--budget-max-drift DURATION |
CI budget: subtitle A/V drift |
--multi-cdn URLS |
Multi-CDN skew matrix (comma-separated or label=URL) |
--max-cdn-skew-ms MS |
Skew threshold for ERR_CDN_SYNC_SKEW (default 3000) |
--prefer-http2 |
Enable reqwest HTTP/2 ALPN stack |
Examples
# CI budget + SARIF + step summary
streamtop "$URL" --budget-max-rtf 1.0 --budget-max-ttfb 500ms --budget-duration 30
streamtop "$URL" --export sarif:streamtop.sarif --timeout 15
# LL-HLS with DoH
streamtop "$URL" --doh-provider cloudflare --probe-headers --summary --summary-format json
# WHEP signaling check
streamtop "https://origin.example/whep/feed"Deprecated
--export-curl,--export-har,--export-report,--export-grafana,--export-incident-> use--exportsrt:///rtmp://URLs are rejected at startup; use WHEP HTTP endpoints
Removed
--anti-dpiactive raw socket stub- Raw
srt:///rtmp://ingest probes andingest_statssummary field
Quality gates
- 190 tests passing (
cargo test --locked --all-targets) - Zero clippy warnings (
-D warnings -W clippy::pedantic -W clippy::nursery) - Summary JSON validated against
schemas/summary.v1.json(schema version 5)
Full changelog
See CHANGELOG.md.
streamtop v1.3.2
Full Changelog: v1.3.1...v1.3.2
streamtop v1.3.1
streamtop v1.3.0
Full Changelog: v1.1.2...v1.3.0
streamtop v1.1.2
Full Changelog: v1.1.1...v1.1.2
v1.1.1
streamtop v1.1.1
Install: cargo install streamtop · cargo binstall streamtop · see README for Scoop / Winget / AUR / Docker / Homebrew.
Assets
- Friendly zips:
streamtop-*-<platform>-*.zip(binary + README/LICENSE/CHANGELOG) - cargo-binstall:
streamtop-<rust-target>.tar.gz(Unix) /.zip(Windows)
Full Changelog: v1.1.0...v1.1.1
v1.1.0
streamtop v1.1.0
Install: cargo install streamtop · cargo binstall streamtop · see README for Scoop / Winget / AUR / Docker / Homebrew.
Assets
- Friendly zips:
streamtop-*-<platform>-*.zip(binary + README/LICENSE/CHANGELOG) - cargo-binstall:
streamtop-<rust-target>.tar.gz(Unix) /.zip(Windows)
Full Changelog: v1.0.1...v1.1.0
v1.0.1
streamtop v1.0.1
Install: cargo install streamtop · cargo binstall streamtop · see README for Scoop / Winget / AUR / Docker / Homebrew.
Assets
- Friendly zips:
streamtop-*-<platform>-*.zip(binary + README/LICENSE/CHANGELOG) - cargo-binstall:
streamtop-<rust-target>.tar.gz(Unix) /.zip(Windows)
Full Changelog: v1.0.0...v1.0.1
v1.0.0
streamtop v1.0.0
Install: cargo install streamtop · cargo binstall streamtop · see README for Scoop / Winget / AUR / Docker / Homebrew.
Assets
- Friendly zips:
streamtop-*-<platform>-*.zip(binary + README/LICENSE/CHANGELOG) - cargo-binstall:
streamtop-<rust-target>.tar.gz(Unix) /.zip(Windows)
Full Changelog: v0.3.4...v1.0.0