io-buffer 1.0.3

A buffer abstracted for disk and network IO, with static lifetime. Unify Vec and *libc::c_void into one type, with smallest mem footprint.
Documentation

io-buffer

Build Status Cargo Documentation Rust 1.36+

This crate provide a [Buffer] type, to unify the difference of different types of buffer, for disk and network IO:

  • Converts owned buffer, From<Vec<u8>> and To<Vec<u8>>.

  • Allocation with malloc()(Buffer::alloc())

  • Allocation with posix_memalign()(Buffer::aligned())

  • Converts from const reference (Buffer::from_c_ref_const()), or from mutable reference (Buffer::from_c_ref_mut()) of unsafe c code.

On debug mode, provides runtime checking if you try to as_mut() a const buffer.

Usage

Cargo.toml:

[dependencies]
io-buffer = "1"

Feature flags

  • compress: enable [Compression] trait

  • lz4: enable lz4 compression