Skip to content

Codec

Defined in: packages/codecs/src/types.ts:39

Core codec interface.

// Simple object codec
const jsonCodec: Codec<MyData> = {
name: 'json',
serialize: (data) => Buffer.from(JSON.stringify(data)),
deserialize: (buf) => JSON.parse(buf.toString()),
};
// Zero-copy raw codec
const rawCodec: Codec<Buffer[], Buffer[]> = {
name: 'raw-chunks',
serialize: (chunks) => Buffer.concat(chunks),
deserialize: (buf) => [buf],
deserializeChunks: (chunks) => [...chunks], // Zero-copy!
};

TInput = unknown

Type accepted by serialize()

TOutput = TInput

Type returned by deserialize() (defaults to TInput)

readonly name: string

Defined in: packages/codecs/src/types.ts:73

Human-readable codec name for debugging/logging.

deserialize(buffer): TOutput

Defined in: packages/codecs/src/types.ts:57

Deserialize from a single merged buffer.

⚠️ WARNING: If called for large payloads, this implies a memory copy happened earlier (chunks were merged).

Buffer

Binary data to deserialize

TOutput

Deserialized data


optional deserializeChunks(chunks): TOutput

Defined in: packages/codecs/src/types.ts:68

Deserialize from raw chunks (Zero-Copy potential).

Implement this to process data without merging buffers. If not implemented, framework defaults to deserialize(Buffer.concat(chunks)).

readonly Buffer<ArrayBufferLike>[]

Array of buffer chunks from FrameBuffer

TOutput

Deserialized data


serialize(data): Buffer

Defined in: packages/codecs/src/types.ts:46

Serialize data to binary format.

TInput

Data to serialize

Buffer

Binary representation as Buffer