SwiftSRT icon indicating copy to clipboard operation
SwiftSRT copied to clipboard

SRT (Secure Reliable Transport) Swift wrapper

Swift wrapper for SRT (Secure Reliable Transport)

This repo tracks stable releases of SRT in the Haivision git repo (https://github.com/haivision/srt). Currently at 1.4.1.

This wrapper is based on swift-nio and is used in the same way, except that you must use an SrtEventLoopGroup instance instead of a typical MultithreadedEventLoopGroup because the SRT sockets live in userspace and are therefore incompatible with a standard NIO event loop.

See ClientServerExample for a usage example.

Work done / to be done:

  • [x] Linux compatibility
  • [x] macOS compatibility
  • [ ] iOS compatibility
  • [ ] Android compatibility
  • [x] Server accepts (IPv4)
  • [x] Client calls out (IPv4)
  • [x] "Live" mode
  • [ ] "File" mode
  • [ ] "Rendez-vous" connections
  • [ ] Bandwidth statistics
  • [ ] Encryption
  • [ ] Bonding
  • Options:
    • [x] MaxBW
    • [x] Passphrase
    • [x] Stream ID
    • [x] Payload Size
    • [x] Reuse Address
    • [ ] MSS
    • [ ] Packet Filter
    • [ ] PB Key Length
    • [ ] Peer Latency
    • [ ] Peer Idle Time
    • [ ] Peer Version
    • [ ] KM State
    • [ ] Recv Latency
    • [ ] Congestion
    • [ ] Send Buffer Size
    • [ ] Too Late Packet Drop
    • [ ] Enforced Encryption