]>
Commit | Line | Data |
---|---|---|
416331ca XL |
1 | # Crossbeam Epoch |
2 | ||
5869c6ff XL |
3 | [![Build Status](https://github.com/crossbeam-rs/crossbeam/workflows/CI/badge.svg)]( |
4 | https://github.com/crossbeam-rs/crossbeam/actions) | |
6a06907d | 5 | [![License](https://img.shields.io/badge/license-MIT_OR_Apache--2.0-blue.svg)]( |
5869c6ff | 6 | https://github.com/crossbeam-rs/crossbeam/tree/master/crossbeam-epoch#license) |
416331ca XL |
7 | [![Cargo](https://img.shields.io/crates/v/crossbeam-epoch.svg)]( |
8 | https://crates.io/crates/crossbeam-epoch) | |
9 | [![Documentation](https://docs.rs/crossbeam-epoch/badge.svg)]( | |
10 | https://docs.rs/crossbeam-epoch) | |
5869c6ff | 11 | [![Rust 1.36+](https://img.shields.io/badge/rust-1.36+-lightgray.svg)]( |
416331ca XL |
12 | https://www.rust-lang.org) |
13 | [![chat](https://img.shields.io/discord/569610676205781012.svg?logo=discord)](https://discord.gg/BBYwKq) | |
14 | ||
15 | This crate provides epoch-based garbage collection for building concurrent data structures. | |
16 | ||
17 | When a thread removes an object from a concurrent data structure, other threads | |
18 | may be still using pointers to it at the same time, so it cannot be destroyed | |
19 | immediately. Epoch-based GC is an efficient mechanism for deferring destruction of | |
20 | shared objects until no pointers to them can exist. | |
21 | ||
22 | Everything in this crate except the global GC can be used in `no_std` environments, provided that | |
6a06907d | 23 | `alloc` feature is enabled. |
416331ca XL |
24 | |
25 | ## Usage | |
26 | ||
27 | Add this to your `Cargo.toml`: | |
28 | ||
29 | ```toml | |
30 | [dependencies] | |
5869c6ff | 31 | crossbeam-epoch = "0.9" |
416331ca XL |
32 | ``` |
33 | ||
f035d41b XL |
34 | ## Compatibility |
35 | ||
5869c6ff XL |
36 | Crossbeam Epoch supports stable Rust releases going back at least six months, |
37 | and every time the minimum supported Rust version is increased, a new minor | |
38 | version is released. Currently, the minimum supported Rust version is 1.36. | |
f035d41b | 39 | |
416331ca XL |
40 | ## License |
41 | ||
42 | Licensed under either of | |
43 | ||
44 | * Apache License, Version 2.0 ([LICENSE-APACHE](LICENSE-APACHE) or http://www.apache.org/licenses/LICENSE-2.0) | |
45 | * MIT license ([LICENSE-MIT](LICENSE-MIT) or http://opensource.org/licenses/MIT) | |
46 | ||
47 | at your option. | |
48 | ||
49 | #### Contribution | |
50 | ||
51 | Unless you explicitly state otherwise, any contribution intentionally submitted | |
52 | for inclusion in the work by you, as defined in the Apache-2.0 license, shall be | |
53 | dual licensed as above, without any additional terms or conditions. |