#reference-counting #rc #weak #arc

no-std wobbly

wobbly-owned reference counting pointers that mostly behave like Weak but can also keep a value alive

2 releases

0.1.1 Feb 25, 2024
0.1.0 Feb 24, 2024

#180 in Simulation

Download history 48/week @ 2024-07-16 8/week @ 2024-07-23 11/week @ 2024-07-30 5/week @ 2024-08-06 20/week @ 2024-08-13 55/week @ 2024-08-20 78/week @ 2024-08-27 4/week @ 2024-09-03 19/week @ 2024-09-10 16/week @ 2024-09-17 122/week @ 2024-09-24 30/week @ 2024-10-01 18/week @ 2024-10-08 6/week @ 2024-10-15 22/week @ 2024-10-22

60 downloads per month
Used in pyodide-webassembly-runti…

MIT/Apache

19KB
127 lines

CI Status MSRV Latest Version Rust Doc Crate Rust Doc Main

wobbly provides the single-threaded rc::Wobbly<T> and thread-safe sync::Wobbly<T> reference-counting pointers that are similar to Weak but provide wobbly-shared ownership of a value of type T, allocated on the heap. Unlike Weak pointers, a group of Wobbly pointers shares one owning (strong) pointer that is released when the first Wobbly of the group is dropped, and Wobbly pointers can thus keep a value alive like std::rc::Rc or std::sync::Arc but can also break cycles by being a non-owning pointer like std::rc::Weak or std::sync::Weak.

License

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Funding

wobbly has been developed as part of ESiWACE3, the third phase of the Centre of Excellence in Simulation of Weather and Climate in Europe.

Funded by the European Union. This work has received funding from the European High Performance Computing Joint Undertaking (JU) under grant agreement No 101093054.

No runtime deps

Features