bufkit 0.5.1

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.
  • Embedded friendly - no_std & no_alloc ready – works in embedded and constrained environments.
  • Retry-friendlytry_* methods enable robust partial read/write handling.

Installation

[dependencies]
bufkit = "0.5"

Feature Flags

Feature Default? Description
std Yes Enables std integration
alloc No Enables heap-allocated buffer support
varint No LEB128 encoding & decoding
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.