chattervox
Version:
An AX.25 packet radio chat protocol with support for digital signatures and binary compression. Like IRC over radio waves 📡〰.
24 lines (20 loc) • 683 B
text/typescript
import * as zlib from 'zlib'
const compressionOptions: zlib.ZlibOptions = {
level: zlib.constants.Z_BEST_COMPRESSION,
}
export async function compress(buffer: Buffer): Promise<Buffer> {
return new Promise<Buffer>((resolve, reject) => {
zlib.deflateRaw(buffer, compressionOptions, (err, data: Buffer) => {
if (err) reject(err)
else resolve(data)
})
})
}
export async function decompress(buffer: Buffer): Promise<Buffer> {
return new Promise<Buffer>((resolve, reject) => {
zlib.inflateRaw(buffer, compressionOptions, (err, data) => {
if (err) reject(err)
else resolve(data)
})
})
}