compio-pool 0.1.0

A bb8-style connection pool for compio: build once, clone the handle onto each thread-per-core io_uring runtime, and lease ring-local connections that never cross threads
Documentation
[package]
name = "compio-pool"
version = "0.1.0"
edition = "2024"
description = "A bb8-style connection pool for compio: build once, clone the handle onto each thread-per-core io_uring runtime, and lease ring-local connections that never cross threads"
license = "MIT OR Apache-2.0"
repository = "https://github.com/artech-git/compio-pool"
documentation = "https://docs.rs/compio-pool"
homepage = "https://github.com/artech-git/compio-pool"
readme = "README.md"
keywords = ["compio", "io-uring", "pool", "bb8", "thread-per-core"]
categories = ["asynchronous", "network-programming", "concurrency"]
# Bisected, not guessed: compio 0.19's executor uses `cfg_select!`, stable
# since 1.95. 1.88 through 1.94 fail to build the dependency tree. Enforced by
# the `msrv` job in CI.
rust-version = "1.95"

# docs.rs builds with `--cfg docsrs` so `#[doc(cfg(...))]` renders. The crate
# only supports Linux, so only Linux targets are built there.
[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]
targets = ["x86_64-unknown-linux-gnu", "aarch64-unknown-linux-gnu"]

[workspace]
members = []
# `compio-redis` is a nested repository with its own history, targeting the
# previous API. `deadpool-baseline` is the tokio + deadpool yardstick for the
# examples, its own workspace root. Neither is part of this build.
exclude = ["crates/compio-redis", "crates/deadpool-baseline"]

[dependencies]
# `default-features = false` drops `io-uring`, which is the whole point, so it
# is named explicitly. `time` is what `LocalPool::get` uses for the connection
# timeout; `net`/`io`/`fs` are for the examples' own accept loops and handlers.
compio = { version = "0.19.2", default-features = false, features = [
    "runtime",
    "net",
    "io",
    "time",
    "io-uring",
    "fs",
] }
# `all` is what gates `Socket::set_cpu_affinity` (SO_INCOMING_CPU) on Linux,
# used by `listener::bind_reuseport`.
socket2 = { version = "0.6.5", features = ["all"] }
# Core enumeration and thread pinning for the `cpu` helper module.
core_affinity = "0.8.3"