bufkit 0.7.0

Memory-backed buffer toolkit with Chunk/ChunkMut traits for predictable, explicit, and retry-friendly access; ideal for Sans-I/O style protocol parsers, database engines, and embedded systems.
Documentation

no_std-friendly, memory-backed buffer toolkit designed for Sans-I/O style encoding and decoding. Provides Chunk (read-only view), ChunkMut (mutable view), and helpers for explicit, convenient bounds-checked access.

Overview

bufkit is a small, focused toolkit for working with in-memory buffers in a predictable, controlled way.
It’s Sans-I/O friendly — meaning it’s easy to integrate into network protocol parsers, database engines, binary file format decoders/encoders, and embedded systems that follow the Sans-I/O design pattern — but it doesn’t implement any I/O itself.

Features

  • Predictable memory usage – operates directly on memory you provide, no hidden allocations.
  • Explicit error handling – choose panicking, Option, or detailed Result with requested vs. available byte counts.
  • Segmented views – create independent Chunk/ChunkMut views into the same buffer.
  • Offset reads/writes – operate at arbitrary positions without unsafe pointer math.
  • Non-destructive cursorsPeeker, RefPeeker, and Putter maintain independent positions for look-ahead parsing and transactional writes.
  • LEB128 varint support – built-in variable-length integer encoding/decoding via varing.
  • Embedded friendlyno_std & no_alloc ready, works in embedded and constrained environments.
  • Retry-friendlytry_* methods enable robust partial read/write handling.

Installation

[dependencies]
bufkit = "0.7"

Feature Flags

Feature Default? Description
std Yes Enables std integration
alloc No Enables heap-allocated buffer support
bytes_1 No Enable integration with bytes 1.x

Alternatives

  • bytes::{Buf, BufMut}: Buffer traits for the bytes may or may not be stored in contiguous memory.
  • buffer-trait: A Buffer trait for reading into uninitialized buffers.

License

bufkit is under the terms of both the MIT license and the Apache License (Version 2.0).

See LICENSE-APACHE, LICENSE-MIT for details.

Copyright (c) 2025 Al Liu.