Pure MoonBit Brotli (.br) encoder and decoder with split encode/decode packages
| target | case | size |
|---|---|---|
| wasm-gc | decode-only | 159.1 kB |
| wasm-gc | encode-only | 211.8 kB |
| wasm-gc | full | 232.2 kB |
| js | decode-only | 605.7 kB |
| js | encode-only | 973.4 kB |
| js | full | 1.0 MB |
| native | decode-only | 507.4 kB |
| native | encode-only | 728.2 kB |
| native | full | 790.0 kB |
moon add hustcer/fbr{
"deps": {
"hustcer/fbr": "0.8.2"
}
}let plain = @decode.unbrotli_sync(compressed)import {
"hustcer/fbr/decode"
}let compressed = @encode.brotli_sync(
data,
opts={
..@encode.BrotliOptions::default(),
quality: 9,
window_bits: 22,
},
)import {
"hustcer/fbr/encode"
}let compressed = @fbr.brotli_sync(data)
let plain = @fbr.unbrotli_sync(compressed)import {
"hustcer/fbr"
}let stream = @encode.BrotliStream::new()
stream.set_ondata((chunk, is_final) => {
// handle compressed chunk
})
stream.push(chunk1)
stream.push(chunk2, final_=true)just sizejust size js,wasm-gcfn unbrotli_sync(data : FixedArray[Byte], opts? : UnbrotliOptions) -> FixedArray[Byte] raise FbrErrorPure MoonBit Brotli (.br) encoder and decoder with split encode/decode packages