Skip to content

Releases: Robotweax/srt

Robotweax SRT 0.2.6 — Performance Optimization

Choose a tag to compare

@SRTPioneer SRTPioneer released this 26 Sep 15:51
50cba37

Robotweax SRT 0.2.6 — Performance Optimization

Status: Released — final tag CI and signed Windows SDK qualification passed.

Project version: 0.2.6. Shared-library C ABI line: 0.2.
Compatible SRT API and srt_getversion(): 1.5.7. This is an implementation
release, not a new SRT wire-protocol version. Default OpenSSL/AES-CTR behavior
and the default-off AES-GCM extension remain unchanged.

Runtime and storage changes

  • Track the next original send packet with a cursor instead of repeatedly
    scanning the unacknowledged prefix; compact retired receive-loss prefixes once.
  • Retry transient UDP send backpressure with bounded pending datagrams. Commit
    pacing and send bookkeeping after successful submission, retaining protected
    retransmission bytes and rejecting stale ACKed or expired data retries.
  • Bound per-channel receive, send and connection-poll work. Rotate connection
    visits while preserving absolute deadlines across continuations.
  • Park quiet channels on a shared socket-readiness watcher while preserving
    protocol deadlines and timer fallback. Coalesce application receive-release
    notifications and avoid immediate continuation after drained UDP input.
  • Retire native readiness polls before closing UDP sockets so rapid listener
    restarts can immediately reuse the port.
  • Use targeted readiness notifications and cached epoll state in the normal
    established-socket path; preserve group, edge-trigger and terminal events.
  • Separate payload storage from packet metadata. Reserve the configured capacity
    up front, touch payload pages as used, and recycle payload indices independently
    of the sequence ring. Capacity is not reduced; pages are not decommitted after
    a traffic peak, and full occupancy still needs the full reservation.
  • Reuse idle connect-callback workers. Retire the callback service before joining
    workers outside the runtime-generation lock, allowing reentrant TLS cleanup.
  • Assign channel affinity only when a start actually activates a channel.
    Remove the redundant timer-cancellation notification; new tasks/timers and
    shutdown continue to signal. No CPU gain is claimed for that last cleanup.
  • Honor positive Live MAXBW as an absolute rate; input-rate estimation and
    overhead apply to relative mode. Clarify File-bandwidth and group-error
    measurements and enforce benchmark deadlines during application-window waits.

See performance measurement, payload storage,
UDP backpressure, channel fairness,
idle readiness, epoll readiness and
loss-list compaction for contracts and test scope.

Compatibility and upgrading

The public C export inventory is unchanged from 0.2.5; the intended C ABI line
remains 0.2. Configured packet capacity,
message/stream modes, encryption, recovery and socket-option support are not
intentionally narrowed by these changes. Existing support boundaries remain in
the compatibility matrix.

Rebuild consumers of the source-tree C++ interfaces with matching headers and
library. SendBuffer, ReceiveBuffer and ReliabilitySession layouts/signatures
changed; matching C exports do not establish C++ binary compatibility. These
implementation headers are not the installed public C API.

Qualification and limits

Release tag v0.2.6 points to 50cba37bc89f423ee7c0a292c3c3eae71b5fc7f9.
The final tag CI
passed its required gate, platform builds, sanitizers, selected Haivision SRT
1.5.7 interoperability profiles, installed consumers, ABI checks and application
integrations. The optional Live timing interoperability job was skipped; this
release does not claim a new result for that profile.

The Windows SDK workflow
passed build, installer, coexistence, signing and signed-installer validation.
The final upload job
reverified both signatures and the checksum manifest. All three uploaded assets
were downloaded and compared byte-for-byte with the qualified signed artifact.

The immutable package source is 7ecb60ea8b4faca01ed86237b0cc9dc906350f6e;
subsequent commits contain package metadata and release documentation, with
unchanged runtime code. Package-manager qualification,
Ubuntu/Fedora package qualification
and the Homebrew bottle build
passed for this corrected source. The Homebrew tap
now provides 0.2.6, including the qualified
Apple Silicon macOS 15 bottle.
These checks do not constitute PPA/COPR publication or an upgrade/rollback guarantee.

A functional transfer at a fixed offered rate is not a maximum-capacity result.
Performance depends on role, occupancy, pacing, encryption, loss, operating
system and workload. Fewer threads do not by themselves guarantee less CPU or
memory. No universal throughput, latency, CPU or RSS improvement is promised.
Shared-listener parallelism, receive syscall batching, callback failure fallback
and reordering-tolerance changes are not part of this release's new guarantees.
Independent cryptographic review remains outstanding.

Windows SDK downloads

Both installers are Authenticode-signed by Robotweax GmbH with trusted
timestamps. Third-party application binaries are not included.

5f3bec9aca5b300cd47f027e6673b93ed5c75e9b153742d9bb8fe5b74beee5bf  robotweax-srt-0.2.6-windows-sdk-openssl.exe
c16767db3f56a5f9e3ae31351ee3c65d575cf80e8564cebe697ceb18b263dc3d  robotweax-srt-0.2.6-windows-sdk-bcrypt.exe

Pre-publication corrections

Earlier candidates exposed installed-documentation link errors and a rapid
GStreamer listener restart race. PR #76
and PR #77 corrected those issues;
PR #78 updated and requalified the
immutable package sources. Explicitly approved tag corrections occurred before
publication, with release-tag protection immediately restored. The earlier
affected draft installers were backed up and replaced by the qualified pair.
The upload-name collision was resolved by repeating only the upload job;
no rebuild or repeat signing was required. Original failures remain recorded,
and deliberately cancelled duplicate package runs are not counted as passes.

Robotweax SRT 0.2.5 — Ecosystem Support

Choose a tag to compare

@SRTPioneer SRTPioneer released this 23 Sep 21:32
492a7d6

Robotweax SRT 0.2.5 — Ecosystem Support

Status: published.

Project version: 0.2.5. Shared-library ABI line: 0.2.
Compatible SRT API and srt_getversion(): 1.5.7.
OpenSSL remains the default backend; BCrypt remains experimental.
AES-GCM remains an explicit default-off extension.

Ecosystem integration

This release provides qualified, version-pinned source-build profiles for
GStreamer, VLC and OBS. The canonical
ecosystem support matrix defines
platforms, roles, encryption, patches and exclusions. These are not universal
binary replacements for existing installations or complete desktop distributions.

  • GStreamer: existing srtsrc/srtsink, media integrity, encrypted and cleartext
    Caller/Listener interoperability, controlled shutdown and listener reconnect.
  • VLC: Linux SRT input/output with decoded video and outgoing media checks;
    a hash-guarded payload-option adjustment is required for the pinned revision.
  • OBS: Linux, Windows x64 and Apple Silicon module and Qt desktop profiles;
    native output and FFmpeg media input select one Robotweax provider per process.
    Desktop profiles include encrypted duplex and automatic reconnect checks.
  • OBS desktop builds apply a pinned, hash-guarded MPEG-TS lifecycle correction.
    The Windows preview ZIP is optional and manually invoked; CI does not create
    or publish an OBS binary distribution. No OBS package is a 0.2.5 SDK asset.

Runtime and packaging changes since 0.2.4

  • Delayed NAKs no longer cause DROPREQ for cumulatively acknowledged sources
    still waiting in a receiver's TSBPD buffer. Abandoned unacknowledged sources
    retain drop-request retries.
  • UDP buffer selection reads back actual capacity and uses bounded fallback
    for capacity errors. Invalid socket requests remain errors.
  • Lite-ACK handling preserves receive-window credit; empty receive buffers
    avoid unnecessary readiness scans. The unqualified paced-poll skip was removed.
  • Optional Linux sender-drop diagnostics distinguish local retransmission
    abandonment from receiver delivery loss, with causal and provenance checks.
  • The UDP/SRT bridge reserves its input port during connection setup and drops
    reservation backlog before forwarding live input.
  • Windows SDK packaging supports Azure Artifact Signing and signature rejection
    tests. v0.2.4 assets are not changed or re-signed.

See the changelog for the complete change summary.

Compatibility and upgrading

The public C export inventory is unchanged from 0.2.4; the ABI line stays 0.2.
The SRT API target remains 1.5.7 independently of the Robotweax version.
Rebuild direct C++ consumers: private state was added to the source-tree C++
ReliabilitySession class after 0.2.4, and matching exported C symbols do not
establish C++ class-layout compatibility. Build third-party integrations against
the selected Robotweax headers and library and retain their provider checks.

Windows SDKs remain separate OpenSSL and BCrypt static-library installers for
Debug/Release and Win32/x64/ARM64. The Windows OBS profile instead builds its own
shared BCrypt compatibility DLL; it does not qualify those SDKs inside OBS.
Installer installation/signing details are in the
Windows SDK guide.

Qualification limits and release acceptance

The pre-release integration baseline
8da678f2029b1b7636a12fc424fea5bdfdfc9db4
passed all seven ecosystem CI jobs in
run 35872509479.
This is evidence for that baseline, not acceptance of a later 0.2.5 tag.
Linux OBS desktop is included in the Linux OBS integration job. The observed
Linux desktop soak was approximately 38 seconds, not a long-duration test.

Core protocol qualification does not automatically qualify corresponding
GStreamer/VLC/OBS options. Physical capture devices, hardware encoders, adverse
networks, quantitative A/V synchronization and long-duration desktop operation
remain outside these profiles. Independent cryptographic review remains
outstanding. No new throughput or latency improvement is promised.

Before publication, record the final release commit, successful required CI run,
tag-triggered SDK build/test run, signature verification for both installers,
installed-consumer checks and final asset hashes. Review the resulting draft
release before publishing; signing requires the release environment's human
approval. The version tag must exactly match CMake. Never overwrite old tags or
assets. Third-party application binaries are not part of this release.

Release artifact evidence

Tag commit: 492a7d61390cbec86e44e177ec034f0f5d9a5cc3.

  • Main CI passed on attempt 2. The first attempt failed during macOS OBS reconnect; the root cause remains unresolved.
  • Tag SDK build passed all builds, installer tests, coexistence, signing and signed-installer verification. Draft upload failed because the checksum manifest used CRLF line endings.
  • This draft recovers the exact signed installer bytes from that run. Only SHA256SUMS line endings were normalized to LF; both original SHA-256 values were rechecked before upload. The tag and executables are unchanged.
Asset SHA-256
OpenSSL installer 1aca46ac892ae3715dc26df0b109ee7902248838f221acffd582164beafefc70
BCrypt installer 50645c1d80d903d0d7db965f9b8aa0c05ebcfa80bb69906c24e3ea8306ddfbee

Robotweax SRT 0.2.4

Choose a tag to compare

@github-actions github-actions released this 11 Sep 09:13
4162adf

Robotweax SRT 0.2.4

Released 2026-09-11 from commit 4162adf50d3ff8e149d7b080130182b04441b0d1.
Project version 0.2.4, shared-library ABI line 0.2, compatible SRT API
and srt_getversion() 1.5.7. OpenSSL remains the source-build default;
AES-GCM remains an explicit default-off extension.

Windows SDK installers

This release provides two separate, unsigned Windows SDK installers:

Both contain public headers, static libraries for Debug/Release × Win32/x64/ARM64,
and MSBuild property sheets. Debug uses /MDd; Release uses /MD.
These are developer SDKs, not standalone streaming applications.

The SDKs can coexist in separate folders and set ROBOTWEAX_SRT_BCRYPT and
ROBOTWEAX_SRT_OPENSSL. Import the selected SDK, for example:

<Import Project="$(ROBOTWEAX_SRT_BCRYPT)\srt.props" />

Legacy backend-neutral installer candidates must be uninstalled first.
Same-backend upgrades currently require uninstall/reinstall. The installers
do not change the legacy ROBOTWEAX_SRT variable. Silent installation supports
/VERYSILENT /SUPPRESSMSGBOXES /NORESTART and an optional /DIR="...".
Do not bypass organizational security policy to install unsigned software.
See the SDK guide.

Other changes since 0.2.3

  • Read-only SRTO_ROBOTWEAX_CRYPTO_BACKEND identifies the actual loaded
    library's OpenSSL or BCrypt backend through srt_getsockflag(). Valid sockets
    and groups can be queried before connecting. Older libraries may reject it;
    treat failure or an unrecognized value as unknown.
  • Optional experimental BCrypt provider, differential/injected-failure
    qualification and a measured CTR XOR-path optimization. No claim of
    universal performance superiority over assembler-enabled OpenSSL.
  • UDP/SRT MPEG-TS bridge with IPv4 multicast, Caller/Listener/Rendezvous in
    both media directions, live statistics and optional reconnect.
  • Experimental Android/iOS build support and emulator/simulator smoke examples.
  • Application-singleton cleanup ordering correction and usable UDP-buffer
    fallback when BSD/macOS rejects a larger native allocation.
  • Live tail recovery correction for recurring non-progress ACKs, with bounded
    periodic-NAK tail probes and preserved fallback behavior.
  • Namespaced installation layout, compatible access-control/logging headers
    and Robotweax-specific version identification.

No exported C symbol or public structure layout is added by the backend query.
The public C export baseline remains unchanged; rebuild private/native C++ consumers.

Validation and remaining limits

This is a pre-1.0 release, not an independent security certification or blanket
production-readiness guarantee. BCrypt and mobile support retain their documented
experimental status. Independent cryptographic review remains outstanding.
The SDK pipeline cross-builds/links ARM64 on an x64 runner; earlier native ARM64
runtime evidence is separate from final installer acceptance. No hard-real-time
or universal group-failover guarantee is implied. Haivision reference binaries
are not redistributed.

See compatibility,
limitations,
BCrypt qualification
and the changelog.
The source-tag notes retain their pre-publication candidate status; this release
page records final publication and validation without moving the immutable tag.

Robotweax SRT 0.2.3

Choose a tag to compare

@SRTPioneer SRTPioneer released this 07 Sep 13:35

Robotweax SRT 0.2.3 is a pre-1.0 maintenance and security-hardening release.

Project version 0.2.3, shared-library ABI 0.2, compatible SRT API and
srt_getversion() 1.5.7. The 80-symbol public C export set is unchanged;
AES-GCM remains explicit and default-off.

Source baseline

This repository starts with the 0.2.3 source baseline, including the subsequent
CI build-scope and scheduling cleanups. Its initial commit is
2c88faeccda23296279e96f85930afa423c6cff0. Development history and earlier
release tags are not imported. Older release-note documents describe historical
versions; they do not imply those tags are available in this repository.

The library and protocol sources are unchanged from the validated maintenance
baseline. One CI unit-test fixture was adapted for a repository without a
parent commit. All 541 Python harness tests and the documentation check passed
locally. The initial hosted Main CI passed with 45 successful jobs and one
expected optional Live timing skip; the run is linked below.

Important qualification limits

This release is published by explicit maintainer decision without a completed
independent cryptographic review
of the directional-key changes.
Intermittent Backup-group interoperability failures and host-dependent timing
outliers remain qualification limits. Passing CI does not resolve their cause
or establish independent security acceptance, hard-real-time behavior or
universal production readiness. Qualify the actual peer and failover topology
before deployment.

Changes and upgrade

  • Independent initial transmit key/salt confirmation before encrypted DATA,
    bounded key-refresh intervals, and closed-socket secret cleanup.
  • Handshake hardening and synchronized group timestamp origins and receive
    TSBPD clocks across late joins and replay.
  • Explicit CTR/GCM demo modes, integration documentation, provenance and
    packaging improvements.
  • Selective CI build/test scope and conservative reuse of recent full CI
    evidence for scheduled runs.

Rebuild integrations against the corrected library. Initial key confirmation
can add startup latency and prolong SECURING. Update both Robotweax group
endpoints for synchronized timing; native C++ implementation layouts are not
the public C ABI. Positive HSv4 establishment and upstream GCM File/Stream
support are not claimed.

Documentation and validation

Distribution and security reports

Source archives from v0.2.3 are the intended release artifacts and include
MIT and third-party notices. No Haivision binaries are redistributed.
Report suspected vulnerabilities privately to info@robotweax.ai; see the
security policy.