Files
suaveplan/packages/foundation/bitpacker/bitpacker-compressed/src/index.ts
2026-05-27 23:47:53 +01:00

47 lines
1.8 KiB
TypeScript

/**
* Compression pipeline for bitpacker.
*
* Public surface:
*
* - `CompressedBitPacker<T>` — `BitPacker` subclass that compresses packed
* bytes through a configured `CompressionAdapter` and frames them with a
* self-describing algorithm header.
* - `CompressionRegistry` + `defaultCompressionRegistry()` /
* `createCompressionRegistry()` — plug-in registry for compression adapters.
* Defaults: `none` always; `gzip` / `deflate` lazy-registered when the
* host environment exposes `CompressionStream`.
* - `NoCompressionAdapter`, `GzipCompressionAdapter`, `DeflateCompressionAdapter`
* — built-in adapters.
* - `CompressionAdapter`, `CompressionConfig`, `BitPackerCompressionAlgorithm`,
* `BitPackerCompressionOptions` — types.
* - `compressData`/`decompressData` — algorithm-by-name helpers.
* - `compressRle`/`decompressRle` — bytes-only RLE fast path (also re-exported
* from `./rle` for callers that want the focused subpath).
*/
export { DeflateCompressionAdapter } from "./adapters/deflate/deflate.js";
export { GzipCompressionAdapter } from "./adapters/gzip/gzip.js";
export { NoCompressionAdapter } from "./adapters/none/none.js";
export { compressData, decompressData } from "./api/api.js";
export {
CompressedBitPacker,
type CompressedBitPackerOptions,
} from "./compressed-bit-packer/compressed-bit-packer.js";
export {
_resetDefaultRegistryForTests,
CompressionRegistry,
createCompressionRegistry,
defaultCompressionRegistry,
} from "./registry/registry.js";
export {
type CompressionOptions,
compressRle,
decompressRle,
} from "./rle/rle.js";
export type {
BitPackerCompressionAlgorithm,
BitPackerCompressionOptions,
CompressionAdapter,
CompressionConfig,
} from "./types/types.js";