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",

Reply via email to