#amf0 #消息格式 #反序列化 #Adobe #AMF #序列化 #数据

rml_amf0

处理Adobe的Action Message Format 0 (AMF0数据格式) 编码和反序列化的模块

5个不稳定版本

使用旧的Rust 2015

0.3.0 2022年1月12日
0.2.0 2021年12月2日
0.1.2 2021年1月6日
0.1.1 2018年4月15日
0.1.0 2018年4月15日

#724 in 编码

Download history 194/week @ 2024-03-12 220/week @ 2024-03-19 100/week @ 2024-03-26 113/week @ 2024-04-02 88/week @ 2024-04-09 77/week @ 2024-04-16 78/week @ 2024-04-23 35/week @ 2024-04-30 31/week @ 2024-05-07 71/week @ 2024-05-14 71/week @ 2024-05-21 70/week @ 2024-05-28 69/week @ 2024-06-04 67/week @ 2024-06-11 49/week @ 2024-06-18 32/week @ 2024-06-25

每月下载量 231次
6 个crate中使用 (通过 rml_rtmp)

MIT 许可证

25KB
515

此crate提供AMF0编码数据的序列化和反序列化功能。

文档

https://docs.rs/rml_amf0/

安装

此crate与Cargo兼容,位于 crates.io。将其添加到您的 Cargo.toml 中,如下所示

[dependencies]
rml_amf0 = "0.1"

示例

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);

依赖关系

~0.4–0.9MB
~19K SLoC