[dependencies.async-trait]
version = "0.1.89"
[dependencies.bincode]
version = "2.0.1"
[dependencies.bytes]
version = "1.10.1"
[dependencies.dashmap]
version = "6.1.0"
[dependencies.derive_more]
features = ["display", "from"]
version = "2.0.1"
[dependencies.futures]
version = "0.3.31"
[dependencies.itoa]
version = "1.0"
[dependencies.leaky-bucket]
version = "1.1.2"
[dependencies.log]
version = "0.4.28"
[dependencies.metrics]
optional = true
version = "0.24.2"
[dependencies.serde]
features = ["derive"]
version = "1.0.219"
[dependencies.socket2]
version = "0.6.0"
[dependencies.static_assertions]
version = "1.1.0"
[dependencies.thiserror]
version = "2.0.16"
[dependencies.tokio]
default-features = false
features = ["net", "signal", "rt-multi-thread", "macros", "sync", "time", "io-util"]
version = "1.47.1"
[dependencies.tokio-stream]
version = "0.1.17"
[dependencies.tokio-util]
features = ["rt", "codec"]
version = "0.7.16"
[dependencies.tracing]
features = ["log", "log-always"]
version = "0.1.41"
[dependencies.tracing-subscriber]
version = "0.3.18"
[dev-dependencies.async-stream]
version = "0.3.6"
[dev-dependencies.cucumber]
version = "0.21.1"
[dev-dependencies.logtest]
version = "2.0.0"
[dev-dependencies.loom]
version = "0.7.2"
[dev-dependencies.metrics-util]
version = "0.20.0"
[dev-dependencies.mockall]
version = "0.13.1"
[dev-dependencies.proptest]
version = "1.7.0"
[dev-dependencies.rstest]
version = "0.26.1"
[dev-dependencies.serial_test]
version = "3.2.0"
[dev-dependencies.tokio]
default-features = false
features = ["macros", "rt-multi-thread", "sync", "time", "io-util", "net", "test-util"]
version = "1.47.1"
[dev-dependencies.tracing-test]
version = "0.2.5"
[[example]]
name = "async_stream"
path = "examples/async_stream.rs"
required-features = ["examples"]
[[example]]
name = "echo"
path = "examples/echo.rs"
required-features = ["examples"]
[[example]]
name = "hotline_codec"
path = "examples/hotline_codec.rs"
required-features = ["examples"]
[[example]]
name = "metadata_routing"
path = "examples/metadata_routing.rs"
required-features = ["examples"]
[[example]]
name = "multi_packet"
path = "examples/multi_packet.rs"
required-features = ["examples"]
[[example]]
name = "mysql_codec"
path = "examples/mysql_codec.rs"
required-features = ["examples"]
[[example]]
name = "packet_enum"
path = "examples/packet_enum.rs"
required-features = ["examples"]
[[example]]
name = "ping_pong"
path = "examples/ping_pong.rs"
required-features = ["examples"]
[[example]]
name = "resp_codec"
path = "examples/resp_codec.rs"
required-features = ["examples"]
[features]
advanced-tests = []
cucumber-tests = []
default = ["metrics", "serializer-bincode"]
examples = []
metrics = ["dep:metrics", "dep:metrics-exporter-prometheus"]
serializer-bincode = []
test-support = []
[lib]
doctest = false
name = "wireframe"
path = "src/lib.rs"
[lints.clippy]
allow_attributes = "deny"
allow_attributes_without_reason = "deny"
big_endian_bytes = "deny"
blanket_clippy_restriction_lints = "deny"
cognitive_complexity = "deny"
dbg_macro = "deny"
expect_used = "deny"
host_endian_bytes = "deny"
implicit_hasher = "deny"
indexing_slicing = "deny"
integer_division = "deny"
integer_division_remainder_used = "deny"
little_endian_bytes = "deny"
needless_pass_by_value = "deny"
panic_in_result_fn = "deny"
print_stderr = "deny"
print_stdout = "deny"
string_slice = "deny"
unreachable = "deny"
unwrap_used = "deny"
[lints.clippy.pedantic]
level = "warn"
priority = -1
[lints.rust]
missing_docs = "deny"
renamed_and_removed_lints = "deny"
unknown_lints = "deny"
[lints.rust.unexpected_cfgs]
check-cfg = ["cfg(loom)"]
level = "warn"
priority = 0
[lints.rustdoc]
bare_urls = "deny"
broken_intra_doc_links = "deny"
invalid_codeblock_attributes = "deny"
invalid_html_tags = "deny"
missing_crate_level_docs = "deny"
private_intra_doc_links = "deny"
unescaped_backticks = "deny"
[package]
autobenches = false
autobins = false
autoexamples = false
autolib = false
autotests = false
build = false
categories = ["network-programming", "asynchronous"]
description = "Simplify building servers and clients for custom binary protocols."
documentation = "https://docs.rs/wireframe"
edition = "2024"
keywords = ["async", "networking", "binary-protocol", "protocol", "tokio"]
license = "ISC"
name = "wireframe"
readme = "README.md"
repository = "https://github.com/leynos/wireframe"
version = "0.2.0"
[package.metadata.docs.rs]
features = ["metrics"]
[target."cfg(loom)".dependencies.loom]
version = "0.7.2"
[target."cfg(not(loom))".dependencies.metrics-exporter-prometheus]
features = ["http-listener"]
optional = true
version = "0.17.2"
[[test]]
name = "app_data"
path = "tests/app_data.rs"
[[test]]
name = "async_stream"
path = "tests/async_stream.rs"
[[test]]
name = "client_preamble"
path = "tests/client_preamble.rs"
[[test]]
name = "client_runtime"
path = "tests/client_runtime.rs"
[[test]]
name = "concurrency_loom"
path = "tests/advanced/concurrency_loom.rs"
required-features = ["advanced-tests"]
[[test]]
name = "connection"
path = "tests/connection.rs"
[[test]]
name = "connection_actor_errors"
path = "tests/connection_actor_errors.rs"
[[test]]
name = "connection_actor_fairness"
path = "tests/connection_actor_fairness.rs"
[[test]]
name = "connection_actor_shutdown"
path = "tests/connection_actor_shutdown.rs"
[[test]]
name = "connection_fragmentation"
path = "tests/connection_fragmentation.rs"
[[test]]
name = "correlation_id"
path = "tests/correlation_id.rs"
[[test]]
harness = false
name = "cucumber"
path = "tests/cucumber.rs"
required-features = ["advanced-tests", "cucumber-tests"]
[[test]]
name = "error_display"
path = "tests/error_display.rs"
[[test]]
name = "example_codecs"
path = "tests/example_codecs.rs"
[[test]]
name = "extractor"
path = "tests/extractor.rs"
[[test]]
name = "fragment_transport"
path = "tests/fragment_transport.rs"
[[test]]
name = "frame_codec"
path = "tests/frame_codec.rs"
[[test]]
name = "lifecycle"
path = "tests/lifecycle.rs"
[[test]]
name = "metadata"
path = "tests/metadata.rs"
[[test]]
name = "metrics"
path = "tests/metrics.rs"
[[test]]
name = "middleware"
path = "tests/middleware.rs"
[[test]]
name = "middleware_order"
path = "tests/middleware_order.rs"
[[test]]
name = "multi_packet"
path = "tests/multi_packet.rs"
[[test]]
name = "multi_packet_streaming"
path = "tests/multi_packet_streaming.rs"
[[test]]
name = "packet_parts"
path = "tests/packet_parts.rs"
[[test]]
name = "preamble"
path = "tests/preamble.rs"
[[test]]
name = "push"
path = "tests/push.rs"
[[test]]
name = "push_policies"
path = "tests/push_policies.rs"
[[test]]
name = "rate_limiter_regression"
path = "tests/rate_limiter_regression.rs"
[[test]]
name = "request_parts"
path = "tests/request_parts.rs"
[[test]]
name = "response"
path = "tests/response.rs"
[[test]]
name = "routes"
path = "tests/routes.rs"
[[test]]
name = "server"
path = "tests/server.rs"
[[test]]
name = "session_registry"
path = "tests/session_registry.rs"
[[test]]
name = "stream_end"
path = "tests/stream_end.rs"
[[test]]
name = "streaming_request"
path = "tests/streaming_request.rs"
[[test]]
name = "support"
path = "tests/support.rs"
[[test]]
name = "wireframe_protocol"
path = "tests/wireframe_protocol.rs"
[[test]]
name = "world"
path = "tests/world.rs"