# THIS CRATE IS WORK IN PROGRESS
# Debra
Distributed epoch-based memory reclamation
[](
https://travis-ci.com/oliver-giersch/debra)
[](https://crates.io/crates/debra)
[](https://docs.rs/debra)
[](
https://github.com/oliver-giersch/debra)
[](
https://www.rust-lang.org)
Many concurrent lock-free data structures require an additional minimal (also lock-free)
garbage collector, which determines, when a removed value can be safely de-allocated.
This can not be determined statically, since many threads could potentially still access
previously created references to the removed value.
This crate provides a simple and (mostly) safe interface for interacting with the
DEBRA [1] memory reclamation scheme.
[[1]](https://dl.acm.org/citation.cfm?id=2767436)
Trevor Brown,
"Reclaiming memory for lock-free data structures: There has to be a better way",
in ACM, 2015
## Usage
Add this to your `Cargo.toml`
```
[dependencies]
debra = "0.1"
```
## Minimum Supported Rust Version (MSRV)
The minimum supported Rust version for this crate is 1.36.0.
## Comparison with [crossbeam-epoch](https://crates.io/crates/crossbeam-epoch)
...TODO...
## Examples
See [tests/treiber.rs](tests/treiber.rs) for an implementation
of Treiber's stack using `debra` for memory reclamation.
## Features
...TODO... (bag-size-1 through bag-size-512)
## License
Debra is distributed under the terms of both the MIT license and the
Apache License (Version 2.0).
See [LICENSE-APACHE](LICENSE-APACHE) and [LICENSE-MIT](LICENSE-MIT) for details.