3 unstable releases
| 0.5.1 | Aug 21, 2025 |
|---|---|
| 0.5.0 | Aug 14, 2025 |
| 0.4.1 | Aug 11, 2025 |
| 0.3.3 |
|
| 0.1.1 |
|
#765 in Encoding
857 downloads per month
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.
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 detailedResultwith requested vs. available byte counts. - Segmented views – create independent
Chunk/ChunkMutviews into the same buffer. - Offset reads/writes – operate at arbitrary positions without unsafe pointer math.
- Embedded friendly -
no_std&no_allocready – works in embedded and constrained environments. - Retry-friendly –
try_*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: ABuffertrait 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