This is an automated email from the ASF dual-hosted git repository.

gkoszyk 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 d4cdfcaf8 fix(sdk): inline iobuf into iggy_binary_protocol (#3110)
d4cdfcaf8 is described below

commit d4cdfcaf883f91cd08b76a596977c63106ea771f
Author: Hubert Gruszecki <[email protected]>
AuthorDate: Mon Apr 13 18:34:41 2026 +0200

    fix(sdk): inline iobuf into iggy_binary_protocol (#3110)
    
    0.8.0 rc1 passed both PPMC and IPMC votes, then cargo publish
    revealed the iobuf crate could not reach crates.io: the name
    "iobuf" is already owned by an unrelated v5.8.1 crate.
    
    Publishing the workspace copy under a new name (iggy_iobuf) was
    rejected because it would commit the project to SemVer stability
    on ~485 LoC of refcounted unsafe code with zero tests, zero docs,
    and a latent refcount-underflow UAF masked by debug_assert!.
    
    Move core/iobuf/src/lib.rs verbatim into
    core/binary_protocol/src/consensus/iobuf.rs, delete the standalone
    crate, and update every consumer to import through
    iggy_binary_protocol::consensus::iobuf. The implementation is
    byte-for-byte unchanged; the existing lint debt is suppressed at
    the module declaration and tracked for a 0.9.x cleanup pass.
    
    Also close the SemVer leak:
    iobuf types were reachable through iggy_common's public API via
    FrozenBatchHeader and a `pub use send_messages2::*` wildcard
    re-export. Demote FrozenBatchHeader to pub(crate), drop the
    wildcard (no external consumers relied on it), and seal
    FragmentedBacking so downstream crates cannot implement it and
    pull Frozen<MESSAGE_ALIGN> into their own signatures.
    
    The publish chain drops from 5 crates to 4:
    iggy_binary_protocol -> iggy_common -> iggy -> iggy-cli.
---
 .github/actions/rust/pre-merge/action.yml          |  2 +-
 .github/config/components.yml                      | 10 ---------
 Cargo.lock                                         | 17 ++------------
 Cargo.toml                                         |  3 +--
 DEPENDENCIES.md                                    |  1 -
 core/binary_protocol/Cargo.toml                    |  3 ++-
 .../src/consensus/iobuf.rs}                        |  0
 core/binary_protocol/src/consensus/message.rs      | 10 +++++++--
 core/binary_protocol/src/consensus/mod.rs          | 14 ++++++++++++
 core/common/Cargo.toml                             |  1 -
 core/common/src/lib.rs                             |  1 -
 core/common/src/types/send_messages2.rs            |  4 ++--
 core/consensus/Cargo.toml                          |  1 -
 core/consensus/src/plane_helpers.rs                |  2 +-
 core/iobuf/Cargo.toml                              | 26 ----------------------
 core/journal/Cargo.toml                            |  1 -
 core/journal/src/prepare_journal.rs                |  2 +-
 core/metadata/Cargo.toml                           |  1 -
 core/metadata/src/impls/recovery.rs                |  2 +-
 core/partitions/Cargo.toml                         |  1 -
 core/partitions/src/iggy_partitions.rs             |  2 +-
 core/partitions/src/journal.rs                     |  2 +-
 core/partitions/src/lib.rs                         |  2 +-
 core/partitions/src/messages_writer.rs             |  2 +-
 core/partitions/src/types.rs                       |  2 +-
 core/simulator/Cargo.toml                          |  1 -
 core/simulator/src/client.rs                       |  2 +-
 core/simulator/src/deps.rs                         |  2 +-
 core/simulator/src/packet.rs                       |  6 +++--
 29 files changed, 44 insertions(+), 79 deletions(-)

diff --git a/.github/actions/rust/pre-merge/action.yml 
b/.github/actions/rust/pre-merge/action.yml
index 742d489f9..d317d6158 100644
--- a/.github/actions/rust/pre-merge/action.yml
+++ b/.github/actions/rust/pre-merge/action.yml
@@ -91,7 +91,7 @@ runs:
             # Build -p flags for cargo build/test
             echo "$CRATES" | sed 's/^/-p /' | tr '\n' ' ' > /tmp/packages.txt
             # Build nextest filter expression for cargo nextest run
-            echo "$CRATES" | sed 's/^/package(/; s/$/)/' | paste -sd ' | ' > 
/tmp/nextest-filter.txt
+            echo "$CRATES" | sed 's/^/package(/; s/$/)/' | paste -sd '|' | sed 
's/|/ | /g' > /tmp/nextest-filter.txt
             echo "::notice::DAG analysis: ${CRATE_COUNT} affected crates (of 
${TOTAL_CRATES} total)"
           else
             echo "::notice::Full workspace affected (${TOTAL_CRATES} crates)"
diff --git a/.github/config/components.yml b/.github/config/components.yml
index a898f30db..bb7a87f1b 100644
--- a/.github/config/components.yml
+++ b/.github/config/components.yml
@@ -51,17 +51,9 @@ components:
     paths:
       - "core/common/**"
 
-  # Leaf crate: zero-copy I/O buffer, depended on by binary_protocol and 
cluster
-  rust-iobuf:
-    depends_on:
-      - "rust-workspace"
-    paths:
-      - "core/iobuf/**"
-
   rust-binary-protocol:
     depends_on:
       - "rust-workspace" # Protocol is affected by workspace changes
-      - "rust-iobuf" # binary_protocol depends on iobuf
       - "ci-infrastructure" # CI changes trigger full regression
     paths:
       - "core/binary_protocol/**"
@@ -80,7 +72,6 @@ components:
   rust-cluster:
     depends_on:
       - "rust-workspace"
-      - "rust-iobuf" # cluster crates depend on iobuf
       - "rust-binary-protocol" # cluster crates depend on binary_protocol
     paths:
       - "core/clock/**"
@@ -104,7 +95,6 @@ components:
   rust:
     depends_on:
       - "rust-workspace"
-      - "rust-iobuf"
       - "rust-configs"
       - "rust-sdk"
       - "rust-common"
diff --git a/Cargo.lock b/Cargo.lock
index 0f72de0fe..27c8d71c2 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -2253,7 +2253,6 @@ dependencies = [
  "futures",
  "iggy_binary_protocol",
  "iggy_common",
- "iobuf",
  "message_bus",
  "rand 0.10.0",
  "rand_xoshiro",
@@ -5642,10 +5641,11 @@ dependencies = [
 name = "iggy_binary_protocol"
 version = "0.10.0"
 dependencies = [
+ "aligned-vec",
  "bytemuck",
  "bytes",
+ "compio-buf",
  "enumset",
- "iobuf",
  "smallvec",
  "thiserror 2.0.18",
 ]
@@ -5674,7 +5674,6 @@ dependencies = [
  "human-repr",
  "humantime",
  "iggy_binary_protocol",
- "iobuf",
  "lending-iterator",
  "moka",
  "nix",
@@ -6240,14 +6239,6 @@ dependencies = [
  "rustix 1.1.4",
 ]
 
-[[package]]
-name = "iobuf"
-version = "0.1.0"
-dependencies = [
- "aligned-vec",
- "compio-buf",
-]
-
 [[package]]
 name = "ipconfig"
 version = "0.3.4"
@@ -6409,7 +6400,6 @@ dependencies = [
  "bytemuck",
  "compio",
  "iggy_binary_protocol",
- "iobuf",
  "tempfile",
 ]
 
@@ -7026,7 +7016,6 @@ dependencies = [
  "consensus",
  "iggy_binary_protocol",
  "iggy_common",
- "iobuf",
  "journal",
  "left-right",
  "message_bus",
@@ -8007,7 +7996,6 @@ dependencies = [
  "consensus",
  "iggy_binary_protocol",
  "iggy_common",
- "iobuf",
  "journal",
  "message_bus",
  "ringbuffer",
@@ -10382,7 +10370,6 @@ dependencies = [
  "futures",
  "iggy_binary_protocol",
  "iggy_common",
- "iobuf",
  "journal",
  "message_bus",
  "metadata",
diff --git a/Cargo.toml b/Cargo.toml
index d453e6d18..9ef77d1a0 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -48,7 +48,6 @@ members = [
     "core/consensus",
     "core/harness_derive",
     "core/integration",
-    "core/iobuf",
     "core/journal",
     "core/message_bus",
     "core/metadata",
@@ -116,6 +115,7 @@ compio = { version = "0.18.0", features = [
     "ws",
     "fs",
 ] }
+compio-buf = "0.8.1"
 # Pin compio-driver >= 0.11.2 to fix musl compilation (compio-rs/compio#668)
 compio-driver = "0.11.4"
 configs = { path = "core/configs", version = "0.1.0" }
@@ -172,7 +172,6 @@ iggy_binary_protocol = { path = "core/binary_protocol", 
version = "0.10.0" }
 iggy_common = { path = "core/common", version = "0.10.0" }
 iggy_connector_sdk = { path = "core/connectors/sdk", version = "0.3.0" }
 integration = { path = "core/integration" }
-iobuf = { path = "core/iobuf" }
 journal = { path = "core/journal" }
 js-sys = "0.3"
 jsonwebtoken = { version = "10.3.0", features = ["rust_crypto"] }
diff --git a/DEPENDENCIES.md b/DEPENDENCIES.md
index 58b90185c..5181660c1 100644
--- a/DEPENDENCIES.md
+++ b/DEPENDENCIES.md
@@ -515,7 +515,6 @@ interpolate_name: 0.2.4, "MIT",
 inventory: 0.3.24, "Apache-2.0 OR MIT",
 io-uring: 0.7.11, "Apache-2.0 OR MIT",
 io_uring_buf_ring: 0.2.3, "MIT",
-iobuf: 0.1.0, "Apache-2.0",
 ipconfig: 0.3.4, "Apache-2.0 OR MIT",
 ipnet: 2.12.0, "Apache-2.0 OR MIT",
 iri-string: 0.7.12, "Apache-2.0 OR MIT",
diff --git a/core/binary_protocol/Cargo.toml b/core/binary_protocol/Cargo.toml
index 813641345..cab10cc8c 100644
--- a/core/binary_protocol/Cargo.toml
+++ b/core/binary_protocol/Cargo.toml
@@ -29,10 +29,11 @@ repository = "https://github.com/apache/iggy";
 readme = "../../README.md"
 
 [dependencies]
+aligned-vec = { workspace = true }
 bytemuck = { workspace = true }
 bytes = { workspace = true }
+compio-buf = { workspace = true }
 enumset = { workspace = true }
-iobuf = { workspace = true }
 smallvec = { workspace = true }
 thiserror = { workspace = true }
 
diff --git a/core/iobuf/src/lib.rs b/core/binary_protocol/src/consensus/iobuf.rs
similarity index 100%
rename from core/iobuf/src/lib.rs
rename to core/binary_protocol/src/consensus/iobuf.rs
diff --git a/core/binary_protocol/src/consensus/message.rs 
b/core/binary_protocol/src/consensus/message.rs
index db85a7229..f5b502088 100644
--- a/core/binary_protocol/src/consensus/message.rs
+++ b/core/binary_protocol/src/consensus/message.rs
@@ -15,12 +15,12 @@
 // specific language governing permissions and limitations
 // under the License.
 
+use super::iobuf::{Frozen, Owned};
 use crate::consensus::{
     self, Command2, CommitHeader, ConsensusError, ConsensusHeader, 
DoViewChangeHeader,
     GenericHeader, PrepareHeader, PrepareOkHeader, RequestHeader, 
StartViewChangeHeader,
     StartViewHeader,
 };
-use iobuf::{Frozen, Owned};
 use smallvec::SmallVec;
 use std::{marker::PhantomData, mem::size_of};
 
@@ -46,13 +46,19 @@ where
     fn as_mut_slice(&mut self) -> &mut [u8];
 }
 
-pub trait FragmentedBacking<H>: MessageBacking<H> + ResponseBackingKind
+mod sealed {
+    pub trait Sealed {}
+}
+
+pub trait FragmentedBacking<H>: MessageBacking<H> + ResponseBackingKind + 
sealed::Sealed
 where
     H: ConsensusHeader,
 {
     fn fragments(&self) -> &[Frozen<MESSAGE_ALIGN>];
 }
 
+impl sealed::Sealed for ResponseBacking {}
+
 #[derive(Debug, Clone)]
 pub struct RequestBacking {
     owned: Owned<MESSAGE_ALIGN>,
diff --git a/core/binary_protocol/src/consensus/mod.rs 
b/core/binary_protocol/src/consensus/mod.rs
index 0801dbbc3..0f17f8ab0 100644
--- a/core/binary_protocol/src/consensus/mod.rs
+++ b/core/binary_protocol/src/consensus/mod.rs
@@ -42,6 +42,20 @@
 mod command;
 mod error;
 mod header;
+// iobuf was moved here verbatim from the former `core/iobuf` crate. Its
+// implementation is intentionally untouched for rc2; the existing lints
+// predate the move and are tracked as tech debt for a 0.9.x cleanup pass.
+#[allow(
+    private_interfaces,
+    clippy::missing_errors_doc,
+    clippy::missing_panics_doc,
+    clippy::must_use_candidate,
+    clippy::return_self_not_must_use,
+    clippy::missing_const_for_fn,
+    clippy::non_send_fields_in_send_ty,
+    clippy::use_self
+)]
+pub mod iobuf;
 pub mod message;
 mod operation;
 
diff --git a/core/common/Cargo.toml b/core/common/Cargo.toml
index 935681690..151ac5d2d 100644
--- a/core/common/Cargo.toml
+++ b/core/common/Cargo.toml
@@ -48,7 +48,6 @@ err_trail = { workspace = true }
 human-repr = { workspace = true }
 humantime = { workspace = true }
 iggy_binary_protocol = { workspace = true }
-iobuf = { workspace = true }
 lending-iterator = { workspace = true }
 moka = { workspace = true }
 once_cell = { workspace = true }
diff --git a/core/common/src/lib.rs b/core/common/src/lib.rs
index dc7fbba3a..e25a99733 100644
--- a/core/common/src/lib.rs
+++ b/core/common/src/lib.rs
@@ -112,7 +112,6 @@ pub use types::personal_access_tokens::*;
 pub use types::segment::Segment;
 pub use types::segment_storage::*;
 pub use types::send_messages2;
-pub use types::send_messages2::*;
 pub use types::snapshot::*;
 pub use types::stats::*;
 pub use types::stream::*;
diff --git a/core/common/src/types/send_messages2.rs 
b/core/common/src/types/send_messages2.rs
index e714936da..58390db04 100644
--- a/core/common/src/types/send_messages2.rs
+++ b/core/common/src/types/send_messages2.rs
@@ -17,8 +17,8 @@
 
 use crate::{INDEX_SIZE, IggyError, random_id, sharding::IggyNamespace};
 use bytes::{Bytes, BytesMut};
+use iggy_binary_protocol::consensus::iobuf::Owned;
 use iggy_binary_protocol::{Message, PrepareHeader, RequestHeader};
-use iobuf::Owned;
 use std::hash::Hasher;
 use twox_hash::XxHash3_64;
 
@@ -544,7 +544,7 @@ impl<'a> Iterator for SendMessages2IteratorWithOffsets<'a> {
     }
 }
 
-pub type FrozenBatchHeader = iobuf::Frozen<MESSAGE_ALIGN>;
+pub(crate) type FrozenBatchHeader = 
iggy_binary_protocol::consensus::iobuf::Frozen<MESSAGE_ALIGN>;
 
 pub fn convert_request_message(
     namespace: IggyNamespace,
diff --git a/core/consensus/Cargo.toml b/core/consensus/Cargo.toml
index dac219e3a..89a4baff1 100644
--- a/core/consensus/Cargo.toml
+++ b/core/consensus/Cargo.toml
@@ -33,7 +33,6 @@ bytemuck = { workspace = true }
 bytes = { workspace = true }
 iggy_binary_protocol = { workspace = true }
 iggy_common = { workspace = true }
-iobuf = { workspace = true }
 message_bus = { workspace = true }
 rand = { workspace = true }
 rand_xoshiro = { workspace = true }
diff --git a/core/consensus/src/plane_helpers.rs 
b/core/consensus/src/plane_helpers.rs
index f980f73f9..e3fa54b3a 100644
--- a/core/consensus/src/plane_helpers.rs
+++ b/core/consensus/src/plane_helpers.rs
@@ -20,10 +20,10 @@ use crate::{
     Consensus, IgnoreReason, Pipeline, PipelineEntry, PlaneKind, 
PrepareOkOutcome, Sequencer,
     Status, VsrConsensus,
 };
+use iggy_binary_protocol::consensus::iobuf::Owned;
 use iggy_binary_protocol::{
     Command2, GenericHeader, Message, PrepareHeader, PrepareOkHeader, 
ReplyHeader,
 };
-use iobuf::Owned;
 use message_bus::MessageBus;
 use std::ops::AsyncFnOnce;
 
diff --git a/core/iobuf/Cargo.toml b/core/iobuf/Cargo.toml
deleted file mode 100644
index a838f4b19..000000000
--- a/core/iobuf/Cargo.toml
+++ /dev/null
@@ -1,26 +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.
-
-[package]
-name = "iobuf"
-version = "0.1.0"
-edition = "2024"
-license = "Apache-2.0"
-
-[dependencies]
-aligned-vec = "0.6"
-compio-buf = "0.8.1"
diff --git a/core/journal/Cargo.toml b/core/journal/Cargo.toml
index ba80d7a2a..1f255cc5c 100644
--- a/core/journal/Cargo.toml
+++ b/core/journal/Cargo.toml
@@ -31,7 +31,6 @@ readme = "../../../README.md"
 bytemuck = { workspace = true }
 compio = { workspace = true }
 iggy_binary_protocol = { workspace = true }
-iobuf = { workspace = true }
 
 [dev-dependencies]
 tempfile = { workspace = true }
diff --git a/core/journal/src/prepare_journal.rs 
b/core/journal/src/prepare_journal.rs
index 8f332ba2a..283db5b4d 100644
--- a/core/journal/src/prepare_journal.rs
+++ b/core/journal/src/prepare_journal.rs
@@ -18,9 +18,9 @@
 use crate::file_storage::FileStorage;
 use crate::{Journal, JournalHandle};
 use compio::io::AsyncWriteAtExt;
+use iggy_binary_protocol::consensus::iobuf::Owned;
 use iggy_binary_protocol::consensus::message::Message;
 use iggy_binary_protocol::consensus::{Command2, PrepareHeader};
-use iobuf::Owned;
 use std::cell::{Cell, Ref, RefCell};
 use std::fmt;
 use std::io;
diff --git a/core/metadata/Cargo.toml b/core/metadata/Cargo.toml
index 2618b6153..d579b70fe 100644
--- a/core/metadata/Cargo.toml
+++ b/core/metadata/Cargo.toml
@@ -46,7 +46,6 @@ tracing = { workspace = true }
 bytemuck = { workspace = true }
 bytes = { workspace = true }
 compio = { workspace = true }
-iobuf = { workspace = true }
 tempfile = { workspace = true }
 
 [lints.clippy]
diff --git a/core/metadata/src/impls/recovery.rs 
b/core/metadata/src/impls/recovery.rs
index 4d5606e4c..83692e62e 100644
--- a/core/metadata/src/impls/recovery.rs
+++ b/core/metadata/src/impls/recovery.rs
@@ -158,8 +158,8 @@ where
 #[allow(clippy::cast_possible_truncation)]
 mod tests {
     use super::*;
+    use iggy_binary_protocol::consensus::iobuf::Owned;
     use iggy_binary_protocol::consensus::{Command2, Operation};
-    use iobuf::Owned;
     use journal::Journal;
     use tempfile::tempdir;
 
diff --git a/core/partitions/Cargo.toml b/core/partitions/Cargo.toml
index 6cc5c6974..7d1db6c7f 100644
--- a/core/partitions/Cargo.toml
+++ b/core/partitions/Cargo.toml
@@ -34,7 +34,6 @@ compio = { workspace = true }
 consensus = { workspace = true }
 iggy_binary_protocol = { workspace = true }
 iggy_common = { workspace = true }
-iobuf = { workspace = true }
 journal = { workspace = true }
 message_bus = { workspace = true }
 ringbuffer = { workspace = true }
diff --git a/core/partitions/src/iggy_partitions.rs 
b/core/partitions/src/iggy_partitions.rs
index 88661ce3b..bec370a91 100644
--- a/core/partitions/src/iggy_partitions.rs
+++ b/core/partitions/src/iggy_partitions.rs
@@ -34,6 +34,7 @@ use consensus::{
     pipeline_prepare_common, replicate_preflight, replicate_to_next_in_chain, 
request_preflight,
     send_prepare_ok as send_prepare_ok_common,
 };
+use iggy_binary_protocol::consensus::iobuf::Frozen;
 use iggy_binary_protocol::{
     Command2, ConsensusHeader, GenericHeader, Message, Operation, 
PrepareHeader, PrepareOkHeader,
     RequestHeader,
@@ -43,7 +44,6 @@ use iggy_common::{
     send_messages2::{convert_request_message, decode_prepare_slice},
     sharding::{IggyNamespace, LocalIdx, ShardId},
 };
-use iobuf::Frozen;
 use journal::{Journal, JournalHandle};
 use message_bus::MessageBus;
 use std::cell::UnsafeCell;
diff --git a/core/partitions/src/journal.rs b/core/partitions/src/journal.rs
index dc020b492..8c45d3630 100644
--- a/core/partitions/src/journal.rs
+++ b/core/partitions/src/journal.rs
@@ -15,9 +15,9 @@
 // specific language governing permissions and limitations
 // under the License.
 
+use iggy_binary_protocol::consensus::iobuf::{Frozen, Owned};
 use iggy_binary_protocol::{Operation, PrepareHeader};
 use iggy_common::send_messages2::{COMMAND_HEADER_SIZE, SendMessages2Ref, 
decode_prepare_slice};
-use iobuf::{Frozen, Owned};
 use journal::{Journal, Storage};
 use std::io;
 use std::{
diff --git a/core/partitions/src/lib.rs b/core/partitions/src/lib.rs
index fd5bb0234..461982aac 100644
--- a/core/partitions/src/lib.rs
+++ b/core/partitions/src/lib.rs
@@ -29,7 +29,7 @@ mod types;
 
 use iggy_binary_protocol::{Message, PrepareHeader};
 use iggy_common::IggyError;
-pub use iggy_common::{IggyMessage2, IggyMessage2Header, IggyMessages2};
+pub use iggy_common::send_messages2::{IggyMessage2, IggyMessage2Header, 
IggyMessages2};
 pub use iggy_partition::IggyPartition;
 pub use iggy_partitions::IggyPartitions;
 pub use types::{
diff --git a/core/partitions/src/messages_writer.rs 
b/core/partitions/src/messages_writer.rs
index 330937c73..4af82d48a 100644
--- a/core/partitions/src/messages_writer.rs
+++ b/core/partitions/src/messages_writer.rs
@@ -19,8 +19,8 @@ use compio::{
     fs::{File, OpenOptions},
     io::AsyncWriteAtExt,
 };
+use iggy_binary_protocol::consensus::iobuf::Frozen;
 use iggy_common::{IggyByteSize, IggyError};
-use iobuf::Frozen;
 use std::{
     rc::Rc,
     sync::atomic::{AtomicU64, Ordering},
diff --git a/core/partitions/src/types.rs b/core/partitions/src/types.rs
index dbaf57a59..0036c2a7e 100644
--- a/core/partitions/src/types.rs
+++ b/core/partitions/src/types.rs
@@ -15,8 +15,8 @@
 // specific language governing permissions and limitations
 // under the License.
 
+use iggy_binary_protocol::consensus::iobuf::Frozen;
 use iggy_common::{IggyByteSize, PollingStrategy};
-use iobuf::Frozen;
 use smallvec::SmallVec;
 
 #[derive(Debug, Clone)]
diff --git a/core/simulator/Cargo.toml b/core/simulator/Cargo.toml
index 7c3c93c74..556e47388 100644
--- a/core/simulator/Cargo.toml
+++ b/core/simulator/Cargo.toml
@@ -28,7 +28,6 @@ enumset = { workspace = true }
 futures = { workspace = true }
 iggy_binary_protocol = { path = "../binary_protocol" }
 iggy_common = { path = "../common" }
-iobuf = { workspace = true }
 journal = { path = "../journal" }
 message_bus = { path = "../message_bus" }
 metadata = { path = "../metadata" }
diff --git a/core/simulator/src/client.rs b/core/simulator/src/client.rs
index 4d23affff..1363a0e0f 100644
--- a/core/simulator/src/client.rs
+++ b/core/simulator/src/client.rs
@@ -16,6 +16,7 @@
 // under the License.
 
 use bytes::Bytes;
+use iggy_binary_protocol::consensus::iobuf::Owned;
 use iggy_binary_protocol::requests::streams::{CreateStreamRequest, 
DeleteStreamRequest};
 use iggy_binary_protocol::{
     Message, Operation, RequestHeader, WireEncode, WireIdentifier, WireName,
@@ -24,7 +25,6 @@ use iggy_common::send_messages2::{
     IggyMessage2, IggyMessage2Header, IggyMessages2, SendMessages2Owned,
 };
 use iggy_common::sharding::IggyNamespace;
-use iobuf::Owned;
 use std::cell::Cell;
 
 // TODO: Proper client which implements the full client SDK API
diff --git a/core/simulator/src/deps.rs b/core/simulator/src/deps.rs
index d3410e311..5033d88a4 100644
--- a/core/simulator/src/deps.rs
+++ b/core/simulator/src/deps.rs
@@ -15,9 +15,9 @@
 // specific language governing permissions and limitations
 // under the License.
 
+use iggy_binary_protocol::consensus::iobuf::Owned;
 use iggy_binary_protocol::{Message, PrepareHeader};
 use iggy_common::variadic;
-use iobuf::Owned;
 use journal::{Journal, JournalHandle, Storage};
 use metadata::MuxStateMachine;
 use metadata::stm::consumer_group::ConsumerGroups;
diff --git a/core/simulator/src/packet.rs b/core/simulator/src/packet.rs
index 1539df91a..c523ee45e 100644
--- a/core/simulator/src/packet.rs
+++ b/core/simulator/src/packet.rs
@@ -781,8 +781,10 @@ mod tests {
         let header: &mut GenericHeader =
             bytemuck::checked::try_from_bytes_mut(&mut buf).expect("zeroed 
bytes are valid");
         header.command = command;
-        Message::try_from(iobuf::Owned::<4096>::copy_from_slice(&buf))
-            .expect("generic test buffer must contain a valid generic message")
+        Message::try_from(
+            
iggy_binary_protocol::consensus::iobuf::Owned::<4096>::copy_from_slice(&buf),
+        )
+        .expect("generic test buffer must contain a valid generic message")
     }
 
     /// Helper: disable all links to/from a given replica (isolate it).

Reply via email to