Skip to content

astronautlabs/amf

Repository files navigation

@/amf

📜 Adobe AMF version 0
Adobe's Action Message Format v0

📜 Adobe AMF version 3
Adobe’s Action Message Format v3

📺 Part of the Astronaut Labs Broadcast Suite

See also:

  • @/rtmp - Adobe's Real Time Messaging Protocol (RTMP)
  • @/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

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

About

ActionScript Message Format v0/v3

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published