This is an automated email from the ASF dual-hosted git repository.
hgruszecki pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/iggy.git
The following commit(s) were added to refs/heads/master by this push:
new 76f123b5f chore(sdk): remove unused fast_async_lock feature (#2653)
76f123b5f is described below
commit 76f123b5fd84e0902614d674069effd006106c23
Author: Hubert Gruszecki <[email protected]>
AuthorDate: Fri Jan 30 22:57:37 2026 +0100
chore(sdk): remove unused fast_async_lock feature (#2653)
The fast_async_lock feature provided an alternative RwLock
implementation using fast-async-mutex crate, but was never
enabled by default and added unnecessary complexity. That
solution was based on spinlock, and it wasn't optimal.
---
Cargo.lock | 13 ++-----
Cargo.toml | 6 +--
DEPENDENCIES.md | 7 ++--
core/binary_protocol/Cargo.toml | 2 +-
core/common/Cargo.toml | 8 +---
core/common/src/locking/fast_async_lock.rs | 61 ------------------------------
core/common/src/locking/mod.rs | 13 -------
core/common/src/locking/tokio_lock.rs | 1 -
core/sdk/Cargo.toml | 10 +----
foreign/python/Cargo.toml | 2 +-
10 files changed, 13 insertions(+), 110 deletions(-)
diff --git a/Cargo.lock b/Cargo.lock
index 3e0e813f2..b43d62fe0 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -3095,12 +3095,6 @@ dependencies = [
"ext-trait",
]
-[[package]]
-name = "fast-async-mutex"
-version = "0.6.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b877ceff2e3d2922823bab7960826ce198181f9c25f75d67b913fde9237e2da6"
-
[[package]]
name = "fastbloom"
version = "0.14.1"
@@ -4429,7 +4423,7 @@ dependencies = [
[[package]]
name = "iggy"
-version = "0.8.2-edge.1"
+version = "0.8.2-edge.2"
dependencies = [
"async-broadcast",
"async-dropper",
@@ -4620,7 +4614,7 @@ dependencies = [
[[package]]
name = "iggy_binary_protocol"
-version = "0.8.2-edge.1"
+version = "0.8.2-edge.2"
dependencies = [
"anyhow",
"async-broadcast",
@@ -4641,7 +4635,7 @@ dependencies = [
[[package]]
name = "iggy_common"
-version = "0.8.2-edge.1"
+version = "0.8.2-edge.2"
dependencies = [
"aes-gcm",
"ahash 0.8.12",
@@ -4661,7 +4655,6 @@ dependencies = [
"crossbeam",
"derive_more",
"err_trail",
- "fast-async-mutex",
"human-repr",
"humantime",
"nix 0.31.1",
diff --git a/Cargo.toml b/Cargo.toml
index b8ea12417..519abbefd 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -140,9 +140,9 @@ humantime = "2.3.0"
hwlocality = "1.0.0-alpha.11"
iceberg = "0.8.0"
iceberg-catalog-rest = "0.8.0"
-iggy = { path = "core/sdk", version = "0.8.2-edge.1" }
-iggy_binary_protocol = { path = "core/binary_protocol", version =
"0.8.2-edge.1" }
-iggy_common = { path = "core/common", version = "0.8.2-edge.1" }
+iggy = { path = "core/sdk", version = "0.8.2-edge.2" }
+iggy_binary_protocol = { path = "core/binary_protocol", version =
"0.8.2-edge.2" }
+iggy_common = { path = "core/common", version = "0.8.2-edge.2" }
iggy_connector_sdk = { path = "core/connectors/sdk", version = "0.1.2-edge.1" }
integration = { path = "core/integration" }
keyring = { version = "3.6.3", features = ["sync-secret-service", "vendored"] }
diff --git a/DEPENDENCIES.md b/DEPENDENCIES.md
index 306f3bdb7..a7fd8c256 100644
--- a/DEPENDENCIES.md
+++ b/DEPENDENCIES.md
@@ -270,7 +270,6 @@ expect-test: 1.5.1, "Apache-2.0 OR MIT",
ext-trait: 1.0.1, "Apache-2.0 OR MIT OR Zlib",
ext-trait-proc_macros: 1.0.1, "Apache-2.0 OR MIT OR Zlib",
extension-traits: 1.0.1, "Apache-2.0 OR MIT OR Zlib",
-fast-async-mutex: 0.6.7, "Apache-2.0 OR MIT",
fastbloom: 0.14.1, "Apache-2.0 OR MIT",
fastrand: 2.3.0, "Apache-2.0 OR MIT",
ferroid: 0.8.9, "Apache-2.0 OR MIT",
@@ -385,14 +384,14 @@ icu_provider: 2.1.1, "Unicode-3.0",
ident_case: 1.0.1, "Apache-2.0 OR MIT",
idna: 1.1.0, "Apache-2.0 OR MIT",
idna_adapter: 1.2.1, "Apache-2.0 OR MIT",
-iggy: 0.8.2-edge.1, "Apache-2.0",
+iggy: 0.8.2-edge.2, "Apache-2.0",
iggy-bench: 0.3.2-edge.1, "Apache-2.0",
iggy-bench-dashboard-server: 0.5.1-edge.1, "Apache-2.0",
iggy-cli: 0.10.2-edge.1, "Apache-2.0",
iggy-connectors: 0.2.2-edge.1, "Apache-2.0",
iggy-mcp: 0.2.2-edge.1, "Apache-2.0",
-iggy_binary_protocol: 0.8.2-edge.1, "Apache-2.0",
-iggy_common: 0.8.2-edge.1, "Apache-2.0",
+iggy_binary_protocol: 0.8.2-edge.2, "Apache-2.0",
+iggy_common: 0.8.2-edge.2, "Apache-2.0",
iggy_connector_elasticsearch_sink: 0.2.1-edge.1, "Apache-2.0",
iggy_connector_elasticsearch_source: 0.2.1-edge.1, "Apache-2.0",
iggy_connector_iceberg_sink: 0.2.1-edge.1, "Apache-2.0",
diff --git a/core/binary_protocol/Cargo.toml b/core/binary_protocol/Cargo.toml
index 32e237bc4..a5553ff51 100644
--- a/core/binary_protocol/Cargo.toml
+++ b/core/binary_protocol/Cargo.toml
@@ -17,7 +17,7 @@
[package]
name = "iggy_binary_protocol"
-version = "0.8.2-edge.1"
+version = "0.8.2-edge.2"
description = "Iggy is the persistent message streaming platform written in
Rust, supporting QUIC, TCP and HTTP transport protocols, capable of processing
millions of messages per second."
edition = "2024"
license = "Apache-2.0"
diff --git a/core/common/Cargo.toml b/core/common/Cargo.toml
index 74aea461b..384e2c8e9 100644
--- a/core/common/Cargo.toml
+++ b/core/common/Cargo.toml
@@ -16,7 +16,7 @@
# under the License.
[package]
name = "iggy_common"
-version = "0.8.2-edge.1"
+version = "0.8.2-edge.2"
description = "Iggy is the persistent message streaming platform written in
Rust, supporting QUIC, TCP and HTTP transport protocols, capable of processing
millions of messages per second."
edition = "2024"
license = "Apache-2.0"
@@ -27,11 +27,6 @@ documentation = "https://iggy.apache.org/docs"
repository = "https://github.com/apache/iggy"
readme = "../../README.md"
-[features]
-default = ["tokio_lock"]
-tokio_lock = []
-fast_async_lock = ["dep:fast-async-mutex"]
-
[dependencies]
aes-gcm = { workspace = true }
ahash = { workspace = true }
@@ -51,7 +46,6 @@ compio-ws = { workspace = true }
crossbeam = { workspace = true }
derive_more = { workspace = true }
err_trail = { workspace = true }
-fast-async-mutex = { version = "0.6.7", optional = true }
human-repr = { workspace = true }
humantime = { workspace = true }
nix = { workspace = true }
diff --git a/core/common/src/locking/fast_async_lock.rs
b/core/common/src/locking/fast_async_lock.rs
deleted file mode 100644
index 3d81c8c15..000000000
--- a/core/common/src/locking/fast_async_lock.rs
+++ /dev/null
@@ -1,61 +0,0 @@
-/* Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-use crate::locking::IggyRwLockFn;
-use fast_async_mutex::rwlock::{RwLock as FastAsyncRwLock, RwLockReadGuard,
RwLockWriteGuard};
-use std::sync::Arc;
-
-#[derive(Debug)]
-pub struct IggyFastAsyncRwLock<T>(Arc<FastAsyncRwLock<T>>);
-
-impl<T> IggyRwLockFn<T> for IggyFastAsyncRwLock<T>
-where
- T: Send + Sync,
-{
- type ReadGuard<'a>
- = RwLockReadGuard<'a, T>
- where
- T: 'a;
- type WriteGuard<'a>
- = RwLockWriteGuard<'a, T>
- where
- T: 'a;
- fn new(data: T) -> Self {
- IggyFastAsyncRwLock(Arc::new(FastAsyncRwLock::new(data)))
- }
-
- async fn read<'a>(&'a self) -> Self::ReadGuard<'a>
- where
- T: 'a,
- {
- self.0.read().await
- }
-
- async fn write<'a>(&'a self) -> Self::WriteGuard<'a>
- where
- T: 'a,
- {
- self.0.write().await
- }
-}
-
-impl<T> Clone for IggyFastAsyncRwLock<T> {
- fn clone(&self) -> Self {
- Self(Arc::clone(&self.0))
- }
-}
diff --git a/core/common/src/locking/mod.rs b/core/common/src/locking/mod.rs
index 630de5adc..2670f1e6b 100644
--- a/core/common/src/locking/mod.rs
+++ b/core/common/src/locking/mod.rs
@@ -18,23 +18,10 @@
use std::ops::{Deref, DerefMut};
-/// This module provides a trait and implementations for a shared mutable
reference configurable via feature flags.
-#[cfg(feature = "tokio_lock")]
-#[cfg(not(any(feature = "fast_async_lock")))]
mod tokio_lock;
-// this can be used in the future to provide different locking mechanisms
-#[cfg(feature = "fast_async_lock")]
-mod fast_async_lock;
-
-#[cfg(feature = "tokio_lock")]
-#[cfg(not(any(feature = "fast_async_lock")))]
pub type IggyRwLock<T> = tokio_lock::IggyTokioRwLock<T>;
-//this can be used in the future to provide different locking mechanisms
-#[cfg(feature = "fast_async_lock")]
-pub type IggyRwLock<T> = fast_async_lock::IggyFastAsyncRwLock<T>;
-
#[allow(async_fn_in_trait)]
pub trait IggyRwLockFn<T> {
type ReadGuard<'a>: Deref<Target = T>
diff --git a/core/common/src/locking/tokio_lock.rs
b/core/common/src/locking/tokio_lock.rs
index d2e46ef1d..42d5cbe45 100644
--- a/core/common/src/locking/tokio_lock.rs
+++ b/core/common/src/locking/tokio_lock.rs
@@ -20,7 +20,6 @@ use crate::locking::IggyRwLockFn;
use std::sync::Arc;
use tokio::sync::{RwLock as TokioRwLock, RwLockReadGuard, RwLockWriteGuard};
-#[cfg(feature = "tokio_lock")]
#[derive(Debug)]
pub struct IggyTokioRwLock<T>(Arc<TokioRwLock<T>>);
diff --git a/core/sdk/Cargo.toml b/core/sdk/Cargo.toml
index 4fa28e16d..5479fdf7a 100644
--- a/core/sdk/Cargo.toml
+++ b/core/sdk/Cargo.toml
@@ -17,7 +17,7 @@
[package]
name = "iggy"
-version = "0.8.2-edge.1"
+version = "0.8.2-edge.2"
description = "Iggy is the persistent message streaming platform written in
Rust, supporting QUIC, TCP and HTTP transport protocols, capable of processing
millions of messages per second."
edition = "2024"
license = "Apache-2.0"
@@ -28,12 +28,6 @@ documentation = "https://iggy.apache.org/docs"
repository = "https://github.com/apache/iggy"
readme = "../../README.md"
-[features]
-default = ["tokio_lock"]
-tokio_lock = []
-# Moved to common crate. Not sure if this is even needed anymore
-#fast_async_lock = ["dep:fast-async-mutex"]
-
[dependencies]
async-broadcast = { workspace = true }
async-dropper = { workspace = true }
@@ -41,8 +35,6 @@ async-trait = { workspace = true }
bon = { workspace = true }
bytes = { workspace = true }
dashmap = { workspace = true }
-# Can be removed if the feature above gets removed.
-#fast-async-mutex = { version = "0.6.7", optional = true }
flume = { workspace = true }
futures = { workspace = true }
futures-util = { workspace = true }
diff --git a/foreign/python/Cargo.toml b/foreign/python/Cargo.toml
index ac1e9f819..dc398e1d4 100644
--- a/foreign/python/Cargo.toml
+++ b/foreign/python/Cargo.toml
@@ -31,7 +31,7 @@ repository = "https://github.com/apache/iggy"
[dependencies]
bytes = "1.11.0"
futures = "0.3.31"
-iggy = { path = "../../core/sdk", version = "0.8.2-edge.1" }
+iggy = { path = "../../core/sdk", version = "0.8.2-edge.2" }
pyo3 = "0.27.2"
pyo3-async-runtimes = { version = "0.27.0", features = [
"attributes",