1 unstable release

0.2.1 Aug 19, 2020

#18 in #srt

Apache-2.0

255KB
5.5K SLoC

srt-rs

codecov

OS Status
Linux Linux Build Status
macOS macOS Build Status
Windows Windows Build Status

NOTE: THIS IS NOT PRODUCTION READY.

Pure rust implementation of SRT (Secure Reliable Transport), without unsafe code.

Reference implementation is available at https://github.com/haivision/srt

Features

  • Fast (heap allocations are rare, uses async IO)
  • Full safety garuntees of rust

What works

  • Listen server connecting
  • Client (connect) connecting
  • Rendezvous connecting
  • Receiving
  • Sending
  • Special SRT packets (partial)
  • Actual SRT (TSBPD)
  • Timestamp drift recovery
  • Encryption
  • Bidirectional

Thread Efficiency

The reference implementation of SRT requires 3 threads per sender and 5 threads per receiver.

With srt-rs, you can assign as many connections to exactly as many threads as you want (usually as many as you have cores) using tokio's futures scheduling. This should allow for handing of many more connectinos.

Dependencies

~7.5MB
~135K SLoC