blob: 0e46f73fc6a153983f7f41c3eb16fb5c14cf9c87 [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 = "simulator"
version = "0.1.0"
edition = "2024"
license = "Apache-2.0"
publish = false
[dependencies]
bytemuck = { workspace = true }
bytes = { workspace = true }
clap = { workspace = true }
clock = { workspace = true }
configs = { workspace = true }
consensus = { workspace = true }
enumset = { workspace = true }
futures = { workspace = true }
iggy_binary_protocol = { workspace = true }
iggy_common = { workspace = true }
indexmap = { workspace = true }
journal = { workspace = true }
message_bus = { workspace = true }
metadata = { workspace = true, features = ["simulator"] }
partitions = { workspace = true, features = ["simulator"] }
rand = { workspace = true }
rand_xoshiro = { workspace = true }
secrecy = { workspace = true }
# The workspace entry disables default features: the sim only needs the
# dispatch/bootstrap library, not the mimalloc allocator or the web embed.
server = { workspace = true }
server_common = { workspace = true, features = ["simulator"] }
shard = { workspace = true, features = ["simulator"] }
strum = { workspace = true }
tracing = { workspace = true }
tracing-subscriber = { workspace = true }
[dev-dependencies]
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"