@mcbe-mods/compress
v1.0.0-beta.6
Published
Deflate compression for MCBE Script API — fflate-based Compressor
Downloads
530
Maintainers
Readme
@mcbe-mods/compress
Deflate compression for Minecraft Bedrock Edition Script API.
Uses fflate/browser under the hood — pure JS, compatible with QuickJS (no TextEncoder/TextDecoder at runtime).
Install
npm install @mcbe-mods/compressUsage
import { Compressor } from '@mcbe-mods/compress'
const c = new Compressor()
const original = `Hello, World!${'x'.repeat(500)}`
const compressed = c.compress(original)
// compressed is Base64-encoded deflated data, shorter than original
const decompressed = c.decompress(compressed)
// decompressed === originalWith IPC
Compressor structurally matches the DataCompressor interface from @mcbe-mods/ipc — pass it directly as a compression plugin:
import { Compressor } from '@mcbe-mods/compress'
import { IPC } from '@mcbe-mods/ipc'
const ipc = new IPC({
compress: new Compressor(),
compressThreshold: 500,
})API
| Method | Signature | Description |
|--------|-----------|-------------|
| compress | (data: string) => string | Deflate + Base64 encode |
| decompress | (data: string) => string | Base64 decode + Inflate |
Implementation notes
- Uses
deflateSync/inflateSyncfromfflate/browser(avoids Node'screateRequire) - Results are Base64-encoded via
@mcbe-mods/utilsfor safe transport - No compression threshold — the class always compresses. Threshold checking is delegated to the consumer (e.g. IPC's
compressThresholdoption) - Unicode-safe via shared
utf8Encode/utf8Decodefrom@mcbe-mods/utils
