lib.rs
cowvert
A simple library for creating references and copy on write values. It is designed to be used in interpreters for handling the env. See the tests to learn more. Example Usage Converting Between Value and Reference use cowvert::Data; fn main() {let mut data = Data::value(100); assert!
CowStr
This library defines strings with copy-on-write semantics. CowStr. Is a String that can be initialized to a static string or be build dynamically. Its contents can then be immutably shared and reference counted. When mutation is required the string will be copied first. This resembles a improved Arc<Cow<'static, str>> with some differences:
XArray
#7 in #copy-on-write. 43 downloads per month Used in 2 crates (via ostd) . MPL-2.0 license . 87KB 1.5K SLoC XArray. XArray is an abstract data type functioning like an expansive array of items where each item must be an 8-byte object, such as Arc<T> or Box<T>.User-stored pointers must have a minimum alignment of 4 bytes. XArray facilitates efficient sequential access to adjacent entries ...
SnapBuf
A [SnapBuf] is like a Vec<u8> with cheap snapshotting using copy on write. Internally, the data is broken up into segments that are organized in a tree structure. Only modified subtrees are cloned, so buffers with only little differences can share most of their memory. Moreover, subtrees which contain only zeros take up no memory.
reflink-copy
reflink-copy. Cross-platform(!) COW reflink copy of files. Some file systems implement COW (copy on write) functionality in order to speed up file copies. On a high level, the new file does not actually get copied, but shares the same on-disk data with the source file.