#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

#14 in Video

Download history 1/week @ 2018-05-24 20/week @ 2018-05-31 3/week @ 2018-06-07 25/week @ 2018-06-14 7/week @ 2018-06-21 43/week @ 2018-06-28 12/week @ 2018-07-05 5/week @ 2018-07-12 25/week @ 2018-07-19 5/week @ 2018-07-26 19/week @ 2018-08-02 25/week @ 2018-08-09 9/week @ 2018-08-16

62 downloads per month

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