blob: 3caae88d4e2883a9785339dea9f6a949a07e625d [file]
# 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 = "metadata"
version = "0.1.0"
description = "Iggy metadata module"
edition = "2024"
license = "Apache-2.0"
keywords = ["iggy", "messaging", "streaming"]
homepage = "https://iggy.apache.org"
documentation = "https://iggy.apache.org/docs"
repository = "https://github.com/apache/iggy"
readme = "../../../README.md"
publish = false
[features]
# Simulator-only seed helper (`Streams::seed_single_partition`): applies
# CreateStream + CreateTopic straight onto the writer STM, bypassing metadata
# consensus, so the deterministic dispatch shell can resolve a namespace
# without driving the reconciler. A `-p iggy-server` build excludes it;
# `cargo build --workspace` unifies features so the shared `metadata` unit
# compiles it in when the simulator requests it. No production caller.
simulator = []
[dependencies]
ahash = { workspace = true }
bytemuck = { workspace = true }
bytes = { workspace = true }
compio = { workspace = true }
consensus = { workspace = true }
futures = { workspace = true }
iggy_binary_protocol = { workspace = true }
iggy_common = { workspace = true }
journal = { workspace = true }
left-right = { workspace = true }
message_bus = { workspace = true }
paste = { workspace = true }
rmp = { workspace = true }
rmp-serde = { workspace = true }
serde = { workspace = true, features = ["derive"] }
server_common = { workspace = true }
tracing = { workspace = true }
[dev-dependencies]
bytes = { workspace = true }
tempfile = { workspace = true }
[lints.clippy]
enum_glob_use = "deny"
pedantic = { level = "deny", priority = -1 }
nursery = "warn"
# Sync impls of async traits are deliberate (non-blocking bus, in-memory storage, test doubles).
unused_async_trait_impl = "allow"
[lints.rust]
warnings = "deny"