← SRT project overview
ENGINEERING COMPARISON · 14 OCTOBER 2026
Robotweax SRT vs Haivision SRT: feature matrix
A practical comparison of the Robotweax SRT 0.3.0 release with the Haivision SRT 1.5.7 reference release—not a claim of universal drop-in compatibility.
ROBOTWEAX 0.3.0RELEASEDHAIVISION 1.5.7RELEASED
01 / SCOPE
How to read this matrix
- Yes means supported in the stated scope; Partial means only the documented subset works, not full upstream parity.
- Opt-in requires a build flag or socket option. Experimental means unreviewed or not fully qualified.
- The Haivision column describes the v1.5.7 default build unless a build option is named. A matching API name does not imply identical behavior.
01 / MATRIX
Project and compatibility baseline
7 featuresSwipe the table sideways to see all four columns →
| Feature | Robotweax SRT 0.3.0 | Haivision SRT 1.5.7 | Scope / difference |
|---|---|---|---|
| Implementation | Independent clean-room implementation; MIT | Reference implementation (UDT lineage); MPL-2.0 | Robotweax is not a fork. |
| Published release | v0.3.0 release and signed Windows SDK installers | v1.5.7 release | The 0.3.0 release tag points to the source commit evaluated here. |
| Public SRT C API | All 72 exported 1.5.7 functions present; 46 full, 26 partial | Reference API | The Robotweax manifest marks documented behavioral limits. |
| Socket options | All 61 1.5.7 options present; 53 implemented, 6 partial, 2 build-gated | Reference options | Robotweax adds 15 namespaced options. |
| Shared-library ABI | SONAME 0.3; rebuild required from 0.2 | libsrt SONAME 1.5 | Same public API target is not binary compatibility. |
| Qualified desktop platforms | Linux, macOS, Windows (x64 and ARM64 SDK) | Linux, macOS, Windows | Robotweax Android/iOS checks remain experimental. |
| Build and integration | C++20; CMake 3.20+; namespaced library and pkg-config | C++03 core; CMake; libsrt / srt.pc | Legacy srt install layout is optional in Robotweax. |
02 / MATRIX
Protocol and transport
8 featuresSwipe the table sideways to see all four columns →
| Feature | Robotweax SRT 0.3.0 | Haivision SRT 1.5.7 | Scope / difference |
|---|---|---|---|
| HSv5 Caller / Listener / Rendezvous | Yes; Rendezvous requires matching address families | Yes | IPv4 and IPv6; no claim for every topology. |
| HSv4 legacy handshake | No; deterministic failure, no downgrade | Yes | Robotweax peers must support SRT 1.3.0 or later. |
| Live / Message and File / Stream | Yes | Yes | File mode includes partial I/O and sendfile/recvfile. |
| Control and Sensor transports | Robotweax-only SRTT_CONTROL and SRTT_SENSOR | No equivalent | Not interoperable with Haivision peers. |
| Congestion control | LiveCC partial; FileCC supported; no custom modules | LiveCC, FileCC, custom C++ modules | No full LiveCC behavioral parity claim. |
| FEC packet filter | Built-in fec; 2–128 columns; no custom plugins | Built-in fec; up to 65,535 columns; plugin API | Common geometries interoperate; full range does not. |
| MSS | 76–1500 bytes | 76 bytes and above | Robotweax rejects jumbo MSS. |
| Epoll and socket statistics | Available with documented partial behavior | Reference behavior | UPDATE events via uwait only; bandwidth and group-counter semantics differ. |
03 / MATRIX
Encryption and security
8 featuresSwipe the table sideways to see all four columns →
| Feature | Robotweax SRT 0.3.0 | Haivision SRT 1.5.7 | Scope / difference |
|---|---|---|---|
| AES-CTR 128 / 192 / 256 | Yes, default | Yes | Payload confidentiality; CTR does not authenticate DATA payloads. |
| AES-GCM | Build opt-in; cross-implementation claim limited to AES-128-GCM Live/Message | AEAD-preview build opt-in | Other GCM profiles must not be inferred interoperable. |
| Crypto backends | OpenSSL 3.x default; Mbed TLS 3.6.7+ on Linux/macOS; BCrypt experimental | OpenSSL, GnuTLS/Nettle, Mbed TLS, Botan | Mbed TLS is available in the 0.3.0 release for supported 3.6.x configurations. |
| Compile without encryption | No | Yes | Robotweax always builds encryption. |
| Session authentication | Opt-in HMAC-SHA256 v2 for KM and FEC parity | No | Robotweax-to-Robotweax only; not DATA authentication. |
| Authenticated runtime controls | ACP1 experimental, unreviewed, separate build gate | No | Default control packets are unauthenticated in both. |
| KM rollback protection | Bounded four retired generations per key parity | Not specifically documented | Older captured KM remains an open issue (#112). |
| Fuzzing and security policy | Seven libFuzzer harnesses; SECURITY.md | No harnesses or SECURITY.md in the pinned tag | Tree inventory, not an independent security certification. |
04 / MATRIX
Connection groups and paths
8 featuresSwipe the table sideways to see all four columns →
| Feature | Robotweax SRT 0.3.0 | Haivision SRT 1.5.7 | Scope / difference |
|---|---|---|---|
| Group availability | Compiled in by default | ENABLE_BONDING build option, off by default | Build profile matters. |
| Broadcast and Backup groups | Yes; weighted Main/Backup and probe rotation | Yes | Pinned interop is documented in both directions. |
| Group Rendezvous / File mode | No | No defined group Rendezvous; groups are Live only | Do not infer group support for every transport mode. |
| Listener admission | Callback sets nonzero GROUPDOMAIN | Callback return 0 admits | Application migration required. |
| Closed-member unread data | Bounded retention | Discarded | Intentional behavioral difference. |
| Path labels | Opt-in OFF / REQUIRED / IF_OFFERED policy | No | IF_OFFERED listener may admit plain peers. |
| Standby RTT on idle Backup members | Opt-in extension, default off | No | Not a DATA-path health signal or automatic path selector. |
| Backup sender / group path snapshots | Versioned C queries | No | Read-only local observability. |
05 / MATRIX
API, packaging and engineering tools
7 featuresSwipe the table sideways to see all four columns →
| Feature | Robotweax SRT 0.3.0 | Haivision SRT 1.5.7 | Scope / difference |
|---|---|---|---|
| API types and constants | All 26 public types and nine constant groups retained | Reference | API target 1.5.7 does not erase partial function semantics. |
| Robotweax-only C extensions | Versioned RTT, standby RTT, group state, path data, packet inspection and options APIs | No | Additive; applications must feature-detect. |
| Windows SDK | Signed OpenSSL and experimental BCrypt installers in v0.3.0 | Source tag; downstream packaging | Separate installers and SHA256SUMS are available on the 0.3.0 release page. |
| Package managers | Debian, Fedora spec, Homebrew tap, vcpkg port in tree | Downstream packaging | Availability and qualification vary by target. |
| End-user streaming apps | UDP/SRT bridge example | srt-live-transmit, file-transmit, tunnel, ffplay wrapper | Robotweax is primarily a library, not a replacement app suite. |
| Interop harness | Pinned Haivision 1.5.5 / 1.5.6 / 1.5.7 peers | Self-interop in tree | Test coverage is profile-specific. |
| Ecosystem qualification | Pinned GStreamer, VLC, OBS and FFmpeg smoke profiles | Downstream projects integrate independently | Do not infer universal app compatibility. |
IMPORTANT LIMITS
Where the implementations differ
- No HSv4 establishment, custom congestion modules or custom packet-filter plugins in Robotweax.
- Robotweax deliberately bounds FEC columns and MSS; jumbo MSS is rejected.
- No encryption compile-out, GnuTLS or Botan backend in Robotweax.
- Group admission callbacks, statistics and some epoll/lifecycle behavior differ.
- Linux, macOS and Windows are the qualified desktop targets; mobile is experimental.
- Open security work includes KM rollback beyond retained history (#112) and ACP1 cryptographic review (#190).
VERIFIABLE BASIS
Sources and status
This is a dated source-code comparison, not a benchmark or compatibility guarantee. The table is a curated web view of the supplied detailed matrix.
