Crates.io | rose_bloom |
lib.rs | rose_bloom |
version | 0.1.5 |
source | src |
created_at | 2022-08-24 07:40:11.882517 |
updated_at | 2024-04-15 05:06:35.834514 |
description | A concurrent growing element size linked list with stable pointers. |
homepage | |
repository | https://github.com/frogtd/rose_bloom |
max_upload_size | |
id | 651537 |
size | 49,105 |
rose_bloom
is a crate for passing out references that won't move when you push to it. It is also thread-safe, so you can use it as a concurrent queue if you don't care about freeing memory as you go along. It is lock-free.
Many operations are O(lg n). This will still be extremely fast.
use rose_bloom::Rose;
let rose = Rose::new();
let out1 = rose.push(1);
rose.push(2);
rose.push(3);
println!("{out1}"); // 1
Add this to your Cargo.toml:
[dependencies]
rose_bloom = "0.1"
#![no_std]
This crate is #![no_std]
but does require alloc
.