# @astronautlabs/amf

> Action Message Format (AMF0/3)

Latest version **0.0.6** (published 2022-07-10) · MIT license · 0 weekly downloads

## Install

```sh
npm install @astronautlabs/amf
pnpm add @astronautlabs/amf
yarn add @astronautlabs/amf
bun add @astronautlabs/amf
```

## Health

**Score 30/100 (F)** — status: abandoned.

Positive: has types; esm support; no vulnerabilities; high quality score.

Warnings: low downloads; pre 1.0.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.0.6 |
| Published | 2022-07-10 |
| First published | 2022-01-30 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | ESM + CommonJS |
| Node | ^14 |
| Dependencies | 1 |
| Unpacked size | 544.1 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Author | Astronaut Labs, LLC |
| Maintainers | rezonant |
| Keywords | actionscript, rtmp, amf, flash, adobe |

## Links

- npm: https://www.npmjs.com/package/@astronautlabs/amf
- npm.io page: https://npm.io/package/@astronautlabs/amf

## Dependencies (1)

- [@astronautlabs/bitstream](https://npm.io/package/@astronautlabs/bitstream.md) ^4.0.0

## Recent versions

- 0.0.6 (latest) — 2022-07-10
- 0.0.5 — 2022-07-10
- 0.0.4 — 2022-07-09
- 0.0.3 — 2022-02-03
- 0.0.2 — 2022-02-02
- 0.0.1 — 2022-01-30

## README

# @/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);
```

---
_Source: https://npm.io/package/@astronautlabs/amf · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
