Skip to content
generated from al8n/template-rs

Yet another lock-free object pool, support `no_std`.

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT
Notifications You must be signed in to change notification settings

al8n/objectpool

Repository files navigation

Object Pool

Yet another lock-free object pool, support no_std.

github LoC Build codecov

docs.rs crates.io crates.io license

English | 简体中文

Features

  • Lock free, backed by concurrent safe queue.
  • Builtin reference counter, no Arc wrapper required.
  • Simple APIs and support no_std environment.
  • Automatically put object back to pool.

Installation

  • std

    [dependencies]
    objectpool = "0.1"
  • no_std

    [dependencies]
    objectpool = { version = "0.1", default-features = false, features = ["alloc"] }

Tests

  • test:

    cargo test
  • miri:

    cargo miri test
  • loom:

    cargo test --tests --features loom

Benchmarks

For detailed reports, you can see the latest Benchmark GitHub Action, and download the Artifacts.

cargo bench

Why this crate?

I need an object pool that supports the no_std environment. Unfortunately, none of the object-pool, lockfree-object-pool and sharded-slab support no_std.

License

objectpool is under the terms of both the MIT license and the Apache License (Version 2.0).

See LICENSE-APACHE, LICENSE-MIT for details.

Copyright (c) 2024 Al Liu.