# scuffle-amf0
> [!WARNING]
> This crate is under active development and may not be stable.

[](https://docs.rs/scuffle-amf0)
[](https://crates.io/crates/scuffle-amf0)
[](https://github.com/scufflecloud/scuffle/actions/workflows/ci.yaml)
[](https://codecov.io/gh/scufflecloud/scuffle)
---
A pure-rust implementation of AMF0 encoder and decoder.
This crate provides serde support for serialization and deserialization of AMF0 data.
See the [changelog](./CHANGELOG.md) for a full release history.
### Feature flags
* **`serde`** — Enables serde support
* **`docs`** — Enables changelog and documentation of feature flags
### Specification
|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
````rust
// 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)?;
````
### 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`