[package]
edition = "2024"
rust-version = "1.88"
name = "magnetar-runtime-moonpool"
version = "1.0.1"
authors = ["Florentin Dubois <florentin.dubois@clever-cloud.com>"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "moonpool runtime engine for magnetar — deterministic-sim friendly. Custom rustls-over-bytepipe TLS adapter. No channels."
homepage = "https://github.com/CleverCloud/magnetar"
readme = "README.md"
keywords = [
"pulsar",
"apache-pulsar",
"messaging",
"streaming",
"sans-io",
]
categories = [
"asynchronous",
"network-programming",
]
license = "Apache-2.0"
repository = "https://github.com/CleverCloud/magnetar"
[features]
buggify = ["magnetar-proto/buggify"]
crypto-aws-lc-rs = ["rustls/aws_lc_rs"]
crypto-fips = ["rustls/fips"]
crypto-openssl = ["dep:rustls-openssl"]
crypto-ring = ["rustls/ring"]
default = ["crypto-aws-lc-rs"]
scalable-topics = ["magnetar-proto/scalable-topics"]
[lib]
name = "magnetar_runtime_moonpool"
path = "src/lib.rs"
[[test]]
name = "anti_thrash"
path = "tests/anti_thrash.rs"
[[test]]
name = "athenz_refresh_edge"
path = "tests/athenz_refresh_edge.rs"
[[test]]
name = "buggify_sim_sweep"
path = "tests/buggify_sim_sweep.rs"
[[test]]
name = "chunk_reassembly_bound"
path = "tests/chunk_reassembly_bound.rs"
[[test]]
name = "clock_injection"
path = "tests/clock_injection.rs"
[[test]]
name = "connect_resilience"
path = "tests/connect_resilience.rs"
[[test]]
name = "consumer_flow_control_edge"
path = "tests/consumer_flow_control_edge.rs"
[[test]]
name = "coverage_close"
path = "tests/coverage_close.rs"
[[test]]
name = "driver_mid_session_reject"
path = "tests/driver_mid_session_reject.rs"
[[test]]
name = "frame_reorder"
path = "tests/frame_reorder.rs"
[[test]]
name = "handle_bytes_owned_parity"
path = "tests/handle_bytes_owned_parity.rs"
[[test]]
name = "handshake_error_capture"
path = "tests/handshake_error_capture.rs"
[[test]]
name = "keepalive_watchdog"
path = "tests/keepalive_watchdog.rs"
[[test]]
name = "logging_checksum"
path = "tests/logging_checksum.rs"
[[test]]
name = "logging_no_secrets"
path = "tests/logging_no_secrets.rs"
[[test]]
name = "lookup_before_open"
path = "tests/lookup_before_open.rs"
[[test]]
name = "lookup_direct_multi_broker"
path = "tests/lookup_direct_multi_broker.rs"
[[test]]
name = "lookup_drop_unregister"
path = "tests/lookup_drop_unregister.rs"
[[test]]
name = "lookup_error_propagation"
path = "tests/lookup_error_propagation.rs"
[[test]]
name = "lookup_redirect_chain"
path = "tests/lookup_redirect_chain.rs"
[[test]]
name = "lookup_reset_race"
path = "tests/lookup_reset_race.rs"
[[test]]
name = "marker_lost_wakeup"
path = "tests/marker_lost_wakeup.rs"
[[test]]
name = "memory_limit_race_stress"
path = "tests/memory_limit_race_stress.rs"
[[test]]
name = "message_listener_delivery"
path = "tests/message_listener_delivery.rs"
[[test]]
name = "mid_handshake_partition"
path = "tests/mid_handshake_partition.rs"
[[test]]
name = "nack_unacked_removal"
path = "tests/nack_unacked_removal.rs"
[[test]]
name = "oauth_refresh_edge"
path = "tests/oauth_refresh_edge.rs"
[[test]]
name = "otel_context_propagation"
path = "tests/otel_context_propagation.rs"
[[test]]
name = "partitioned_metadata_fast_path"
path = "tests/partitioned_metadata_fast_path.rs"
[[test]]
name = "pip_121_auto_failover"
path = "tests/pip_121_auto_failover.rs"
[[test]]
name = "pip_121_oscillation"
path = "tests/pip_121_oscillation.rs"
[[test]]
name = "pip_188_migrate_then_migrate_again"
path = "tests/pip_188_migrate_then_migrate_again.rs"
[[test]]
name = "poll_transmit_vectored_parity"
path = "tests/poll_transmit_vectored_parity.rs"
[[test]]
name = "pool_lifecycle"
path = "tests/pool_lifecycle.rs"
[[test]]
name = "producer_drop_close"
path = "tests/producer_drop_close.rs"
[[test]]
name = "producer_memory_limit_concurrent"
path = "tests/producer_memory_limit_concurrent.rs"
[[test]]
name = "proxy_multi_conn"
path = "tests/proxy_multi_conn.rs"
[[test]]
name = "reconnect_replay_gating"
path = "tests/reconnect_replay_gating.rs"
[[test]]
name = "reconnect_with_inflight"
path = "tests/reconnect_with_inflight.rs"
[[test]]
name = "replicated_subscriptions"
path = "tests/replicated_subscriptions.rs"
[[test]]
name = "replicated_subscriptions_sim"
path = "tests/replicated_subscriptions_sim.rs"
[[test]]
name = "sasl_kerberos_challenge"
path = "tests/sasl_kerberos_challenge.rs"
[[test]]
name = "scalable_topic"
path = "tests/scalable_topic.rs"
[[test]]
name = "shadow_topic"
path = "tests/shadow_topic.rs"
[[test]]
name = "sim_chaos"
path = "tests/sim_chaos.rs"
[[test]]
name = "supervised_redial"
path = "tests/supervised_redial.rs"
[[test]]
name = "supervisor_backoff_persistence"
path = "tests/supervisor_backoff_persistence.rs"
[[test]]
name = "terminal_exit"
path = "tests/terminal_exit.rs"
[[test]]
name = "tls_crypto_provider_smoke"
path = "tests/tls_crypto_provider_smoke.rs"
[[test]]
name = "tls_handshake_chaos"
path = "tests/tls_handshake_chaos.rs"
[[test]]
name = "tls_transport_coverage"
path = "tests/tls_transport_coverage.rs"
[[test]]
name = "topic_migrated_allow_list"
path = "tests/topic_migrated_allow_list.rs"
[[test]]
name = "transactions"
path = "tests/transactions.rs"
[[test]]
name = "two_producers_parallel"
path = "tests/two_producers_parallel.rs"
[[test]]
name = "virtual_clock_ack_timeout"
path = "tests/virtual_clock_ack_timeout.rs"
[[test]]
name = "virtual_clock_driver_loop"
path = "tests/virtual_clock_driver_loop.rs"
[[test]]
name = "virtual_clock_send_timeout"
path = "tests/virtual_clock_send_timeout.rs"
[[test]]
name = "wrapper_message_listener_delivery"
path = "tests/wrapper_message_listener_delivery.rs"
[dependencies.bytes]
version = "^1.11.1"
[dependencies.futures]
version = "^0.3.32"
features = ["std"]
default-features = false
[dependencies.magnetar-proto]
version = "^1.0.1"
[dependencies.moonpool-core]
version = "^0.7.0"
[dependencies.parking_lot]
version = "^0.12.5"
[dependencies.rustls]
version = "^0.23.40"
features = [
"std",
"tls12",
"logging",
]
default-features = false
[dependencies.rustls-openssl]
version = "^0.3.1"
optional = true
default-features = false
[dependencies.slab]
version = "^0.4.12"
[dependencies.thiserror]
version = "^2.0.18"
[dependencies.tokio]
version = "^1.52.3"
features = [
"sync",
"macros",
"rt",
"time",
"io-util",
]
default-features = false
[dependencies.tracing]
version = "^0.1.44"
[dev-dependencies.async-trait]
version = "^0.1.89"
[dev-dependencies.magnetar-auth-athenz]
version = "^1.0.1"
features = [
"zts",
"crypto-aws-lc-rs",
]
[dev-dependencies.magnetar-auth-sasl]
version = "^1.0.1"
[dev-dependencies.moonpool-sim]
version = "^0.7.0"
[dev-dependencies.prost]
version = "^0.14.4"
[dev-dependencies.rcgen]
version = "0.14"
features = [
"aws_lc_rs",
"pem",
]
default-features = false
[dev-dependencies.serde]
version = "^1.0.228"
features = ["derive"]
[dev-dependencies.tokio]
version = "^1.52.3"
features = [
"sync",
"macros",
"rt",
"rt-multi-thread",
"time",
"io-util",
"net",
"test-util",
]
default-features = false
[dev-dependencies.tokio-rustls]
version = "^0.26.4"
features = ["aws_lc_rs"]
default-features = false
[dev-dependencies.tokio-util]
version = "^0.7.18"
default-features = false
[dev-dependencies.tracing]
version = "^0.1.44"
features = ["valuable"]
[dev-dependencies.tracing-subscriber]
version = "^0.3.23"
features = [
"fmt",
"env-filter",
]
default-features = false
[dev-dependencies.valuable]
version = "0.1"
features = ["derive"]
default-features = false
[lints.clippy]
cast_possible_truncation = "allow"
cast_possible_wrap = "allow"
cast_sign_loss = "allow"
collapsible_if = "allow"
missing_errors_doc = "allow"
missing_panics_doc = "allow"
module_name_repetitions = "allow"
must_use_candidate = "allow"
unnecessary_literal_bound = "allow"
[lints.clippy.all]
level = "warn"
priority = -1
[lints.clippy.pedantic]
level = "warn"
priority = -1
[lints.rust]
missing_debug_implementations = "warn"
unreachable_pub = "warn"
unsafe_code = "forbid"
[lints.rust.rust_2024_compatibility]
level = "warn"
priority = -1