@webbuf/rw
v3.3.0
Published
Read and write buffers, optimized with Rust/WASM for the web, node.js, deno, and bun.
Downloads
1,037
Maintainers
Readme
@webbuf/rw
Buffer reader and writer for sequential binary I/O.
Installation
npm install @webbuf/rwUsage
Writing Data
import { BufWriter } from "@webbuf/rw";
import { U8, U16BE, U32BE, U64BE } from "@webbuf/numbers";
import { FixedBuf } from "@webbuf/fixedbuf";
const writer = new BufWriter();
// Write numbers
writer.writeU8(new U8(255));
writer.writeU16BE(new U16BE(1000));
writer.writeU32BE(new U32BE(123456));
writer.writeU64BE(new U64BE(0x123456789abcdef0n));
// Write fixed buffers
const hash = FixedBuf.fromRandom<32>(32);
writer.writeFixed(hash);
// Write variable-length data
writer.writeVarIntU64BE(new U64BE(1000n));
// Get result
const buf = writer.toBuf();Reading Data
import { BufReader } from "@webbuf/rw";
import { WebBuf } from "@webbuf/webbuf";
const data = WebBuf.fromHex("ff03e8...");
const reader = new BufReader(data);
// Read numbers
const u8 = reader.readU8();
const u16 = reader.readU16BE();
const u32 = reader.readU32BE();
const u64 = reader.readU64BE();
// Read fixed buffers
const hash = reader.readFixed<32>(32);
// Read variable-length data
const varInt = reader.readVarIntU64BE();
// Check remaining
reader.eof(); // true if at end
reader.remainder(); // remaining bytes as WebBufAPI
BufWriter
| Method | Description |
| ----------------------- | ----------------------------- |
| writeU8(val) | Write 8-bit unsigned |
| writeU16BE(val) | Write 16-bit big-endian |
| writeU32BE(val) | Write 32-bit big-endian |
| writeU64BE(val) | Write 64-bit big-endian |
| writeFixed(buf) | Write fixed-size buffer |
| writeVarIntU64BE(val) | Write variable-length integer |
| toBuf() | Get result as WebBuf |
BufReader
| Method | Description |
| -------------------- | ---------------------------- |
| readU8() | Read 8-bit unsigned |
| readU16BE() | Read 16-bit big-endian |
| readU32BE() | Read 32-bit big-endian |
| readU64BE() | Read 64-bit big-endian |
| readFixed<N>(size) | Read fixed-size buffer |
| readVarIntU64BE() | Read variable-length integer |
| eof() | Check if at end |
| remainder() | Get remaining bytes |
License
MIT
