| Crates.io | polymock |
| lib.rs | polymock |
| version | 0.2.2 |
| created_at | 2023-01-19 17:11:12.480904+00 |
| updated_at | 2023-03-17 15:16:25.965897+00 |
| description | A thread-safe arena bytes allocator |
| homepage | |
| repository | https://github.com/MrGunflame/polymock-rs |
| max_upload_size | |
| id | 762708 |
| size | 68,932 |
A thread-safe bump allocation arena for bytes.
polymock is primarly targeted at high-throughput multi-threaded network applications which
need to allocate and free buffers very frequently and cannot afford going through the global
allocator.
Add polymock to your Cargo.toml:
polymock = "0.2.0"
Next create an allocation arena and allocate some buffers:
use polymock::Arena;
// Create a bump arena with a chunk size of 1000 bytes.
let arena = Arena::new(1000);
let mut buffers = Vec::new();
for _ in 0..10 {
// All 10 buffers will be allocated in the same chunk.
let buf = arena.alloc();
buffers.push(buf);
}
// The allocated buffers may outlive the arena they
// were allocated with.
drop(arena);
buffers[0][0] = 1;
Licensed under either MIT License or Apache License, Version 2.0 at your option.