UNPKG

@astronautlabs/amf

Version:

Action Message Format (AMF0/3)

60 lines (41 loc) 1.58 kB
# @/amf > **[📜 Adobe AMF version 0](https://rtmp.veriskope.com/pdf/amf0-file-format-specification.pdf)** > Adobe's Action Message Format v0 > **[📜 Adobe AMF version 3](https://rtmp.veriskope.com/pdf/amf3-file-format-spec.pdf)** > Adobe’s Action Message Format v3 > 📺 Part of the [**Astronaut Labs Broadcast Suite**](https://github.com/astronautlabs/broadcast) > > See also: > - [@/rtmp](https://github.com/astronautlabs/rtmp) - Adobe's Real Time Messaging Protocol (RTMP) > - [@/flv](https://github.com/astronautlabs/flv) - Adobe's Flash Video format (FLV) > 📝 **Alpha Quality** > This library is new, no compatibility is currently guaranteed between > releases (beta, semver 0.0.x). --- # Installation ``` npm i @astronautlabs/amf ``` # Usage ```typescript import { AMF0, AMF3 } from '@astronautlabs/amf'; // Encode AMF values let encoded : Uint8Array; encoded = AMF0.Value.any(123).serialize(); encoded = AMF0.Value.any(false).serialize(); encoded = AMF0.Value.any(null).serialize(); encoded = AMF0.Value.any({ hello: 'world' }).serialize(); encoded = AMF0.Value.any([ 1, 2, "types", "are", "good" ]).serialize(); // Be specific about types encoded = AMF3.Value.vector(Int32Array.from([0,1,2,3])); // Transparent passthrough of existing AMF values encoded = AMF3.Value.object({ foo: 123, bar: AMF3.Value.dictionary({ baz: 321, fizz: 'hello' }) }) // Decode values (from Uint8Array/Buffer) let decoded : AMF0.Value = AMF0.Value.deserialize(encoded); ```