Thanks to visit codestin.com
Credit goes to lib.rs

#byte-buffer #no-alloc #buf #bufio #bufmut

no-std bufkit

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

3 unstable releases

0.5.1 Aug 21, 2025
0.5.0 Aug 14, 2025
0.4.1 Aug 11, 2025
0.3.3 Aug 10, 2025
0.1.1 Jul 31, 2025

#765 in Encoding

Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App

857 downloads per month

MIT/Apache

310KB
4.5K SLoC

bufkit

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.

github LoC Build codecov

docs.rs crates.io crates.io license

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.

Dependencies

~175–720KB
~16K SLoC