Amanieu/intrusive-rs

Intrusive collections for Rust

Rust

561

267 commits

updated Aug 4, 2026

See the code

README

intrusive-collections

Build Status Coverage Status Crates.io

A Rust library for creating intrusive collections. Currently supports singly-linked and doubly-linked lists, as well as red-black trees.

Features

  • Compatible with #[no_std].
  • Intrusive collections don't require any dynamic memory allocation since they simply keep track of existing objects rather than allocating new ones.
  • You can safely manipulate intrusive collections without any unsafe code.
  • A single object can be a member of multiple intrusive collections simultaneously.
  • Intrusive collections provide a Cursor-based interface, which allows safe mutation while iterating.

For examples and more information, see the documentation (crates.io, master).

Usage

Add this to your Cargo.toml:

[dependencies]
intrusive-collections = "0.10"

This crate has the following Cargo features:

  • alloc (enabled by default): Implements IntrusivePointer for Box, Rc and Arc.
  • nightly: Reserved for future nightly-only features. Currently has no effect.

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.

Amanieu/intrusive-rs

Intrusive collections for Rust

Rust

561

267 commits

updated Aug 4, 2026

See the code

README

intrusive-collections

Build Status Coverage Status Crates.io

A Rust library for creating intrusive collections. Currently supports singly-linked and doubly-linked lists, as well as red-black trees.

Features

  • Compatible with #[no_std].
  • Intrusive collections don't require any dynamic memory allocation since they simply keep track of existing objects rather than allocating new ones.
  • You can safely manipulate intrusive collections without any unsafe code.
  • A single object can be a member of multiple intrusive collections simultaneously.
  • Intrusive collections provide a Cursor-based interface, which allows safe mutation while iterating.

For examples and more information, see the documentation (crates.io, master).

Usage

Add this to your Cargo.toml:

[dependencies]
intrusive-collections = "0.10"

This crate has the following Cargo features:

  • alloc (enabled by default): Implements IntrusivePointer for Box, Rc and Arc.
  • nightly: Reserved for future nightly-only features. Currently has no effect.

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.

Project health

Overall

3.8/10

Maintained

3/10

Code review

7/10
OpenSSF Scorecard

Significant stargazers

(top 24 of 43)

Nick Fitzgerald

1,961 followers · starred Feb 2018

John Ericson

525 followers · starred May 2017

Pekka Enberg

2,031 followers · starred Dec 2016

John-John Tedro

312 followers · starred Apr 2021