#video #streaming #rtmp


Rust library for handling aspects of the RTMP protocol

5 releases

0.2.0 Jul 19, 2018
0.1.3 May 16, 2018
0.1.2 Apr 15, 2018
0.1.1 Apr 15, 2018
0.1.0 Apr 15, 2018

#22 in Video

Download history 68/week @ 2018-10-16 8/week @ 2018-10-23 2/week @ 2018-10-30 28/week @ 2018-11-06 12/week @ 2018-11-13 11/week @ 2018-11-20 12/week @ 2018-11-27 94/week @ 2018-12-04 22/week @ 2018-12-11 17/week @ 2018-12-18 14/week @ 2018-12-25 20/week @ 2019-01-01

62 downloads per month
Used in 1 crate

MIT license



Rust based libraries for misc media functionality


There are currently 2 supported libraries in this project:

  • rml_amf0 - Crate supporting the serialization and deserialization of amf0 encoded data.
  • rml_rtmp - Crate providing high and low level APIs for supporting the Adobe RTMP protocol.


Several examples have been created that utilize these libraries

  • mio_rtmp_server - This is a semi-advanced example of creating a mio application that can act as both a client and a server. It supports:

    • Clients can connect and publish video to a stream.
    • Clients can connect and play video that is being published to a stream.
    • The server can pull live video from a remote server and relay the video stream to subscribed players.
    • The server can take a video stream that a client is publishing and republish that out to another RTMP server.
  • threaded_rtmp_server - This is a very simple RTMP server that allows clients to publish video and players to watch video.


Several tools are provided in this repository:

  • rtmp-log-reader - Allows the reading of raw RTMP binary that are encoded in a file. This is used for debugging RTMP conversations between two parties.

  • handshake-tester - Tool to verify handshaking can be performed with another RTMP server.


~24K SLoC