diff --git a/Cargo.lock b/Cargo.lock index 3e0e813f28..b43d62fe0d 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 b8ea12417d..519abbefde 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 306f3bdb7e..a7fd8c256e 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 32e237bc4c..a5553ff510 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 74aea461b2..384e2c8e9d 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 3d81c8c152..0000000000 --- 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(Arc>); - -impl IggyRwLockFn for IggyFastAsyncRwLock -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 Clone for IggyFastAsyncRwLock { - 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 630de5adc6..2670f1e6b0 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 = tokio_lock::IggyTokioRwLock; -//this can be used in the future to provide different locking mechanisms -#[cfg(feature = "fast_async_lock")] -pub type IggyRwLock = fast_async_lock::IggyFastAsyncRwLock; - #[allow(async_fn_in_trait)] pub trait IggyRwLockFn { type ReadGuard<'a>: Deref diff --git a/core/common/src/locking/tokio_lock.rs b/core/common/src/locking/tokio_lock.rs index d2e46ef1dc..42d5cbe459 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(Arc>); diff --git a/core/sdk/Cargo.toml b/core/sdk/Cargo.toml index 4fa28e16db..5479fdf7a7 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 ac1e9f819b..dc398e1d4f 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",