#amf0 #message-format #deserialize #adobe #amf #serialization #data

rml_amf0

Modules for handling the encoding and decoding of data with Adobe's Action Message Format 0 (AMF0 data format)

5 unstable releases

Uses old Rust 2015

0.3.0 Jan 12, 2022
0.2.0 Dec 2, 2021
0.1.2 Jan 6, 2021
0.1.1 Apr 15, 2018
0.1.0 Apr 15, 2018

#701 in Encoding

Download history 345/week @ 2023-12-18 191/week @ 2023-12-25 657/week @ 2024-01-01 330/week @ 2024-01-08 380/week @ 2024-01-15 580/week @ 2024-01-22 247/week @ 2024-01-29 167/week @ 2024-02-05 261/week @ 2024-02-12 228/week @ 2024-02-19 169/week @ 2024-02-26 120/week @ 2024-03-04 144/week @ 2024-03-11 258/week @ 2024-03-18 94/week @ 2024-03-25 151/week @ 2024-04-01

655 downloads per month
Used in 6 crates (via rml_rtmp)

MIT license

25KB
515 lines

This crate provides functions for the serialization and deserialization of AMF0 encoded data.

Documentation

https://docs.rs/rml_amf0/

Installation

This crate works with Cargo and is on crates.io. Add it to your Cargo.toml like so:

[dependencies]
rml_amf0 = "0.1"

Example

use std::io::Cursor;
use std::collections::HashMap;
use rml_amf0::{Amf0Value, serialize, deserialize};

// Put some data into the Amf0Value types
let mut properties = HashMap::new();
properties.insert("app".to_string(), Amf0Value::Number(99.0));
properties.insert("second".to_string(), Amf0Value::Utf8String("test".to_string()));

let value1 = Amf0Value::Number(32.0);
let value2 = Amf0Value::Boolean(true);
let object = Amf0Value::Object(properties);

let input = vec![value1, object, value2];

// Serialize the values into a vector of bytes
let serialized_data = serialize(&input).unwrap();

// Deserialize the vector of bytes back into Amf0Value types
let mut serialized_cursor = Cursor::new(serialized_data);
let results = deserialize(&mut serialized_cursor).unwrap();

assert_eq!(input, results);

Dependencies

~0.4–0.9MB
~20K SLoC