Releases: kt81/Spangle.Net.Transport.SRT
Releases · kt81/Spangle.Net.Transport.SRT
Release list
0.2.0
Stream ids and encryption on the managed API
The two options an SRT ingest server actually needs, mapped from their RTMP counterparts:
SRTClient.StreamId— the sender'sstreamid(srt://host:port?streamid=...), the SRT counterpart of an RTMP stream key. Use it to route streams and authorize publishes.SRTListenerOptions.Passphrase— pre-shared passphrase encryption (SRTO_PASSPHRASE, 10–79 bytes). Senders presenting a different passphrase are rejected during the handshake; payloads are AES-encrypted on the wire (mbedTLS backend, PBKDF2 key derivation). Accepted connections inherit the listener's passphrase.
var listener = new SRTListener(endpoint, new SRTListenerOptions
{
Passphrase = "correct horse battery staple",
});
listener.Start();
var client = await listener.AcceptSRTClientAsync(ct);
// e.g. "live/abc" from srt://host:9998?streamid=live/abc
Console.WriteLine(client.StreamId);Both paths are covered by tool-free native loopback tests (streamid round-trip; wrong-passphrase rejection + decrypted payload integrity) on every RID lane.
Client-side connect remains unexposed: open an issue if you need it and it will be prioritized immediately.
0.1.0
The first release: a self-contained SRT listener/transport for .NET.
What's inside
- SRTListener / SRTClient on
System.IO.Pipelines: truly asynchronous accept (a dedicated thread drivessrt_epollinto a bounded channel), backpressure-aware receive (the socket is masked out of the epoll set while the consumer catches up), and zero staging copies —srt_recvmsgwrites straight into the pipe buffer. - Batteries included: the native library ships in the package for
win-x64,win-arm64,linux-x64,linux-arm64andosx-arm64, each built from source and tested on a native CI runner. Nothing to install. - Native components: libsrt v1.5.5 (MPL-2.0, unmodified) statically linked with Mbed TLS v3.6.7 (Apache-2.0) as the crypto backend — encrypted streams (
SRTO_PASSPHRASE) are exercised in CI via a native loopback test. See THIRD-PARTY-NOTICES.txt.
Status
Pre-1.0. The surface is listener/receive first; passphrase options and client-side connect are not exposed on the managed API yet.
Part of the Spangle streaming media server family.