divbuf

Crates.iodivbuf
lib.rsdivbuf
version0.3.1
sourcesrc
created_at2018-03-02 00:20:24.174569
updated_at2018-12-08 21:11:48.043473
descriptionBuffer object that can be recursively divided into smaller buffers
homepage
repositoryhttps://github.com/asomers/divbuf
max_upload_size
id53380
size69,019
Alan Somers (asomers)

documentation

https://docs.rs/divbuf

README

DivBuf

A library providing recursively divisible buffer objects.

Build Status Crates.io CodeCov.io

Documentation

The divbuf crate provides a buffer structure DivBufShared that can be efficiently and safely divided into multiple smaller buffers. Each child buffer can be further divided, recursively. A primitive form of range-locking is available: there is no way to create overlapping mutable child buffers.

This crate is similar to bytes, but with a few key differences:

  • bytes is a COW crate. Data will be shared between multiple objects as much as possible, but sometimes the data will be copied to new storage. divbuf, onthe other hand, will never copy data unless explicitly requested.
  • A BytesMut object always has the sole ability to access its own data. Once a BytesMut object is created, there is no other way to modify or even read its data that doesn't involve that object. A DivBufMut, on the other hand, can share its data with a DivBufShared. After that DivBufMut has been dropped, another can be created from the DivBufShared.
  • bytes contains numerous optimizations for dealing with small arrays, such as inline storage. However, some of those optimizations result in data copying, which is anathema to divbuf. divbuf therefore does not include them, and is optimized for working with large arrays.

License

divbuf is distributed under the MIT license. See LICENSE for details.

Commit count: 99

cargo fmt