bufkit

Crates.iobufkit
lib.rsbufkit
version0.5.1
created_at2025-07-31 16:49:29.968908+00
updated_at2025-08-21 07:35:23.779911+00
descriptionMemory-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.
homepagehttps://github.com/al8n/bufkit
repositoryhttps://github.com/al8n/bufkit
max_upload_size
id1775345
size367,534
Al Liu (al8n)

documentation

https://docs.rs/bufkit

README

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.

Commit count: 14

cargo fmt