#flash #rtmp #flv #byte #amf0

scuffle-amf0

A pure-rust implementation of AMF0 encoder and decoder

3 unstable releases

Uses new Rust 2024

new 0.2.0 Apr 27, 2025
0.1.1 Feb 21, 2025
0.1.0 Feb 10, 2025
0.0.2 Feb 9, 2025
0.0.1 Feb 9, 2025

#651 in Video


Used in 3 crates (2 directly)

MIT/Apache

180KB
4.5K SLoC

scuffle-amf0

[!WARNING]
This crate is under active development and may not be stable.

crates.io docs.rs


A pure-rust implementation of AMF0 encoder and decoder.

This crate provides serde support for serialization and deserialization of AMF0 data.

Specification

Name Version Link Comments
Action Message Format -- AMF 0 - https://rtmp.veriskope.com/pdf/amf0-file-format-specification.pdf Refered to as 'AMF0 spec' in this documentation

Limitations

  • Does not support AMF0 references.
  • Does not support the AVM+ Type Marker. (see AMF 0 spec, 3.1)

Example

// Decode a string value from bytes
let value: String = scuffle_amf0::from_slice(bytes)?;

// .. do something with the value

// Encode a value into a writer
scuffle_amf0::to_writer(&mut writer, &value)?;

Status

This crate is currently under development and is not yet stable.

Unit tests are not yet fully implemented. Use at your own risk.

License

This project is licensed under the MIT or Apache-2.0 license. You can choose between one of them if you use this work.

SPDX-License-Identifier: MIT OR Apache-2.0

Dependencies

~0.6–1.2MB
~25K SLoC