From c71476eef5bf507bf62900fb5bbf766cf9499474 Mon Sep 17 00:00:00 2001 From: tison Date: Fri, 4 Sep 2026 12:42:05 +0800 Subject: [PATCH 1/2] chore: prepare fastpool for archival --- .github/workflows/ci.yml | 2 +- Cargo.lock | 22 +++------------------- Cargo.toml | 2 +- README.md | 20 ++++++++++++++------ examples/Cargo.toml | 2 +- fastpool/Cargo.toml | 6 +++--- fastpool/src/lib.rs | 8 ++++++++ fastpool/tests/recycle_cancelled_tests.rs | 2 ++ fastpool/tests/replenish_tests.rs | 2 ++ 9 files changed, 35 insertions(+), 31 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index bd756c9..add560e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -53,7 +53,7 @@ jobs: strategy: matrix: os: [ ubuntu-22.04, macos-14, windows-2022 ] - rust-version: [ "1.85.0", "stable" ] + rust-version: [ "1.86.0", "stable" ] runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v4 diff --git a/Cargo.lock b/Cargo.lock index a94aca2..abde593 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -54,13 +54,9 @@ dependencies = [ [[package]] name = "asyncband" -version = "0.6.7" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94a214ba60d6231afd0e805e3c27c45a1626d9debaa5a5061c45a1ea1b2f1ed0" -dependencies = [ - "hashbrown", - "slab", -] +checksum = "9c0760bfe4d98dc80094270772af5a31eb431bb2212d2ce559a3af18d04632fb" [[package]] name = "bitflags" @@ -144,19 +140,13 @@ dependencies = [ [[package]] name = "fastpool" -version = "1.1.1" +version = "1.2.0" dependencies = [ "asyncband", "scopeguard", "tokio", ] -[[package]] -name = "hashbrown" -version = "0.17.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a" - [[package]] name = "heck" version = "0.5.0" @@ -292,12 +282,6 @@ dependencies = [ "libc", ] -[[package]] -name = "slab" -version = "0.4.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a2ae44ef20feb57a68b23d846850f861394c2e02dc425a50098ae8c90267589" - [[package]] name = "smallvec" version = "1.15.1" diff --git a/Cargo.toml b/Cargo.toml index 69c5bae..71d4efa 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -22,7 +22,7 @@ homepage = "https://github.com/fast/fastpool" license = "Apache-2.0" readme = "README.md" repository = "https://github.com/fast/fastpool" -rust-version = "1.85.0" +rust-version = "1.86.0" [workspace.lints.rust] unknown_lints = "deny" diff --git a/README.md b/README.md index 928f290..fd94997 100644 --- a/README.md +++ b/README.md @@ -1,15 +1,19 @@ # Fastpool +> [!WARNING] +> +> Fastpool is deprecated and is being archived. Development has moved to [`asyncband::pool`](https://docs.rs/asyncband/0.7/asyncband/pool/), which is the maintained successor. Fastpool 1.2.0 is the final planned release. + [![Crates.io][crates-badge]][crates-url] [![Documentation][docs-badge]][docs-url] -[![MSRV 1.85][msrv-badge]](https://www.whatrustisit.com) +[![MSRV 1.86][msrv-badge]](https://www.whatrustisit.com) [![Apache 2.0 licensed][license-badge]][license-url] [![Build Status][actions-badge]][actions-url] [crates-badge]: https://img.shields.io/crates/v/fastpool.svg [crates-url]: https://crates.io/crates/fastpool [docs-badge]: https://docs.rs/fastpool/badge.svg -[msrv-badge]: https://img.shields.io/badge/MSRV-1.85-green?logo=rust +[msrv-badge]: https://img.shields.io/badge/MSRV-1.86-green?logo=rust [docs-url]: https://docs.rs/fastpool [license-badge]: https://img.shields.io/crates/l/fastpool [license-url]: LICENSE @@ -22,21 +26,25 @@ Fastpool provides fast and runtime-agnostic object pools for Async Rust. You can read [the docs page](https://docs.rs/fastpool/*/fastpool/) for a complete overview of the library. -## Installation +## Migration -Add the dependency to your `Cargo.toml` via: +Replace the Fastpool dependency with AsyncBand's `pool` feature: ```shell -cargo add fastpool +cargo add asyncband --features pool ``` +Fastpool's root items are available under `asyncband::pool`, while `bounded` and `unbounded` remain submodules. For example, replace `fastpool::{ManageObject, bounded}` with `asyncband::pool::{ManageObject, bounded}`. + +AsyncBand 0.7 also strengthens several pool contracts. In particular, `bounded::Pool::replenish` is now `replenish_to` and returns a `Result`, and `bounded::PoolStatus::wait_count` has been removed. Review the [AsyncBand pool documentation](https://docs.rs/asyncband/0.7/asyncband/pool/) when migrating those APIs. + ## Documentation Read the online documents at https://docs.rs/fastpool. ## Minimum Supported Rust Version (MSRV) -This crate is built against the latest stable release, and its minimum supported rustc version is 1.85.0. +This crate is built against the latest stable release, and its minimum supported rustc version is 1.86.0. The policy is that the minimum Rust version required to use this crate can be increased in minor version updates. For example, if Fastpool 1.0 requires Rust 1.20.0, then Fastpool 1.0.z for all values of z will also require Rust 1.20.0 or newer. However, Fastpool 1.y for y > 0 may require a newer minimum version of Rust. diff --git a/examples/Cargo.toml b/examples/Cargo.toml index 2f7ef5c..72ddd06 100644 --- a/examples/Cargo.toml +++ b/examples/Cargo.toml @@ -19,7 +19,7 @@ resolver = "2" [workspace.package] edition = "2024" publish = false -rust-version = "1.85.0" +rust-version = "1.86.0" [workspace.dependencies] fastpool = { path = "../fastpool" } diff --git a/fastpool/Cargo.toml b/fastpool/Cargo.toml index 555a9f4..98a6d39 100644 --- a/fastpool/Cargo.toml +++ b/fastpool/Cargo.toml @@ -15,8 +15,8 @@ [package] name = "fastpool" -description = "This crates implements a fast object pool for Async Rust." -version = "1.1.1" +description = "DEPRECATED: Use asyncband::pool for runtime-agnostic async object pools." +version = "1.2.0" edition.workspace = true homepage.workspace = true @@ -26,7 +26,7 @@ repository.workspace = true rust-version.workspace = true [dependencies] -asyncband = { version = "0.6.7" } +asyncband = { version = "0.7", features = ["semaphore"] } scopeguard = { version = "1.2.0" } [dev-dependencies] diff --git a/fastpool/src/lib.rs b/fastpool/src/lib.rs index 57e3938..ae872a4 100644 --- a/fastpool/src/lib.rs +++ b/fastpool/src/lib.rs @@ -12,10 +12,18 @@ // See the License for the specific language governing permissions and // limitations under the License. +#![deprecated( + since = "1.2.0", + note = "Fastpool is no longer maintained; use asyncband::pool instead" +)] #![deny(missing_docs)] //! Fastpool provides fast and runtime-agnostic object pools for Async Rust. //! +//! # Deprecation +//! +//! Fastpool is no longer maintained. Use [`asyncband::pool`](https://docs.rs/asyncband/0.7/asyncband/pool/), the maintained successor. See the repository README for migration notes. +//! //! This crate provides two implementations: [bounded pool](bounded::Pool) and //! [unbounded pool](unbounded::Pool). //! diff --git a/fastpool/tests/recycle_cancelled_tests.rs b/fastpool/tests/recycle_cancelled_tests.rs index cc02ad3..5f77095 100644 --- a/fastpool/tests/recycle_cancelled_tests.rs +++ b/fastpool/tests/recycle_cancelled_tests.rs @@ -12,6 +12,8 @@ // See the License for the specific language governing permissions and // limitations under the License. +#![allow(deprecated)] + use std::convert::Infallible; use std::sync::Arc; use std::sync::atomic::AtomicUsize; diff --git a/fastpool/tests/replenish_tests.rs b/fastpool/tests/replenish_tests.rs index 0b2ddc6..70db53b 100644 --- a/fastpool/tests/replenish_tests.rs +++ b/fastpool/tests/replenish_tests.rs @@ -12,6 +12,8 @@ // See the License for the specific language governing permissions and // limitations under the License. +#![allow(deprecated)] + use std::convert::Infallible; use std::sync::Arc; From 56a5fb03ce58e98541fc5030ad217251422bce9b Mon Sep 17 00:00:00 2001 From: tison Date: Fri, 4 Sep 2026 13:30:47 +0800 Subject: [PATCH 2/2] chore: keep archival release on existing MSRV --- .github/workflows/ci.yml | 2 +- Cargo.lock | 22 +++++++++++++++++++--- Cargo.toml | 2 +- README.md | 10 +++++----- examples/Cargo.toml | 2 +- fastpool/Cargo.toml | 4 ++-- fastpool/src/lib.rs | 4 ++-- 7 files changed, 31 insertions(+), 15 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index add560e..bd756c9 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -53,7 +53,7 @@ jobs: strategy: matrix: os: [ ubuntu-22.04, macos-14, windows-2022 ] - rust-version: [ "1.86.0", "stable" ] + rust-version: [ "1.85.0", "stable" ] runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v4 diff --git a/Cargo.lock b/Cargo.lock index abde593..ab6909a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -54,9 +54,13 @@ dependencies = [ [[package]] name = "asyncband" -version = "0.7.0" +version = "0.6.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c0760bfe4d98dc80094270772af5a31eb431bb2212d2ce559a3af18d04632fb" +checksum = "94a214ba60d6231afd0e805e3c27c45a1626d9debaa5a5061c45a1ea1b2f1ed0" +dependencies = [ + "hashbrown", + "slab", +] [[package]] name = "bitflags" @@ -140,13 +144,19 @@ dependencies = [ [[package]] name = "fastpool" -version = "1.2.0" +version = "1.1.2" dependencies = [ "asyncband", "scopeguard", "tokio", ] +[[package]] +name = "hashbrown" +version = "0.17.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a" + [[package]] name = "heck" version = "0.5.0" @@ -282,6 +292,12 @@ dependencies = [ "libc", ] +[[package]] +name = "slab" +version = "0.4.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a2ae44ef20feb57a68b23d846850f861394c2e02dc425a50098ae8c90267589" + [[package]] name = "smallvec" version = "1.15.1" diff --git a/Cargo.toml b/Cargo.toml index 71d4efa..69c5bae 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -22,7 +22,7 @@ homepage = "https://github.com/fast/fastpool" license = "Apache-2.0" readme = "README.md" repository = "https://github.com/fast/fastpool" -rust-version = "1.86.0" +rust-version = "1.85.0" [workspace.lints.rust] unknown_lints = "deny" diff --git a/README.md b/README.md index fd94997..48e7161 100644 --- a/README.md +++ b/README.md @@ -2,18 +2,18 @@ > [!WARNING] > -> Fastpool is deprecated and is being archived. Development has moved to [`asyncband::pool`](https://docs.rs/asyncband/0.7/asyncband/pool/), which is the maintained successor. Fastpool 1.2.0 is the final planned release. +> Fastpool is deprecated and is being archived. Development has moved to [`asyncband::pool`](https://docs.rs/asyncband/0.7.1/asyncband/pool/), which is the maintained successor. Fastpool 1.1.2 is the final planned release. [![Crates.io][crates-badge]][crates-url] [![Documentation][docs-badge]][docs-url] -[![MSRV 1.86][msrv-badge]](https://www.whatrustisit.com) +[![MSRV 1.85][msrv-badge]](https://www.whatrustisit.com) [![Apache 2.0 licensed][license-badge]][license-url] [![Build Status][actions-badge]][actions-url] [crates-badge]: https://img.shields.io/crates/v/fastpool.svg [crates-url]: https://crates.io/crates/fastpool [docs-badge]: https://docs.rs/fastpool/badge.svg -[msrv-badge]: https://img.shields.io/badge/MSRV-1.86-green?logo=rust +[msrv-badge]: https://img.shields.io/badge/MSRV-1.85-green?logo=rust [docs-url]: https://docs.rs/fastpool [license-badge]: https://img.shields.io/crates/l/fastpool [license-url]: LICENSE @@ -36,7 +36,7 @@ cargo add asyncband --features pool Fastpool's root items are available under `asyncband::pool`, while `bounded` and `unbounded` remain submodules. For example, replace `fastpool::{ManageObject, bounded}` with `asyncband::pool::{ManageObject, bounded}`. -AsyncBand 0.7 also strengthens several pool contracts. In particular, `bounded::Pool::replenish` is now `replenish_to` and returns a `Result`, and `bounded::PoolStatus::wait_count` has been removed. Review the [AsyncBand pool documentation](https://docs.rs/asyncband/0.7/asyncband/pool/) when migrating those APIs. +AsyncBand 0.7.1 also strengthens several pool contracts. In particular, `bounded::Pool::replenish` is now `replenish_to` and returns a `Result`, and `bounded::PoolStatus::wait_count` has been removed. Review the [AsyncBand pool documentation](https://docs.rs/asyncband/0.7.1/asyncband/pool/) when migrating those APIs. ## Documentation @@ -44,7 +44,7 @@ Read the online documents at https://docs.rs/fastpool. ## Minimum Supported Rust Version (MSRV) -This crate is built against the latest stable release, and its minimum supported rustc version is 1.86.0. +This crate is built against the latest stable release, and its minimum supported rustc version is 1.85.0. The policy is that the minimum Rust version required to use this crate can be increased in minor version updates. For example, if Fastpool 1.0 requires Rust 1.20.0, then Fastpool 1.0.z for all values of z will also require Rust 1.20.0 or newer. However, Fastpool 1.y for y > 0 may require a newer minimum version of Rust. diff --git a/examples/Cargo.toml b/examples/Cargo.toml index 72ddd06..2f7ef5c 100644 --- a/examples/Cargo.toml +++ b/examples/Cargo.toml @@ -19,7 +19,7 @@ resolver = "2" [workspace.package] edition = "2024" publish = false -rust-version = "1.86.0" +rust-version = "1.85.0" [workspace.dependencies] fastpool = { path = "../fastpool" } diff --git a/fastpool/Cargo.toml b/fastpool/Cargo.toml index 98a6d39..87e7fb4 100644 --- a/fastpool/Cargo.toml +++ b/fastpool/Cargo.toml @@ -16,7 +16,7 @@ name = "fastpool" description = "DEPRECATED: Use asyncband::pool for runtime-agnostic async object pools." -version = "1.2.0" +version = "1.1.2" edition.workspace = true homepage.workspace = true @@ -26,7 +26,7 @@ repository.workspace = true rust-version.workspace = true [dependencies] -asyncband = { version = "0.7", features = ["semaphore"] } +asyncband = { version = "0.6.7" } scopeguard = { version = "1.2.0" } [dev-dependencies] diff --git a/fastpool/src/lib.rs b/fastpool/src/lib.rs index ae872a4..a69eeb7 100644 --- a/fastpool/src/lib.rs +++ b/fastpool/src/lib.rs @@ -13,7 +13,7 @@ // limitations under the License. #![deprecated( - since = "1.2.0", + since = "1.1.2", note = "Fastpool is no longer maintained; use asyncband::pool instead" )] #![deny(missing_docs)] @@ -22,7 +22,7 @@ //! //! # Deprecation //! -//! Fastpool is no longer maintained. Use [`asyncband::pool`](https://docs.rs/asyncband/0.7/asyncband/pool/), the maintained successor. See the repository README for migration notes. +//! Fastpool is no longer maintained. Use [`asyncband::pool`](https://docs.rs/asyncband/0.7.1/asyncband/pool/), the maintained successor. See the repository README for migration notes. //! //! This crate provides two implementations: [bounded pool](bounded::Pool) and //! [unbounded pool](unbounded::Pool).