wsio-server 0.12.8

Event-driven WebSocket server for ws.io with namespaces and room broadcasting.
Documentation
# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[package]
edition = "2024"
name = "wsio-server"
version = "0.12.8"
build = false
include = [
    "Cargo.toml",
    "LICENSE*",
    "README.md",
    "benches/**",
    "examples/**",
    "src/**",
    "tests/**",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Event-driven WebSocket server for ws.io with namespaces and room broadcasting."
readme = "README.md"
keywords = [
    "messaging",
    "network",
    "realtime",
    "websocket",
    "ws",
]
categories = [
    "asynchronous",
    "concurrency",
    "network-programming",
    "web-programming::websocket",
]
license = "MIT"
repository = "https://github.com/ws-io/ws.io-rs"

[features]
all = [
    "connection-extensions",
    "packet-codec-cbor",
    "packet-codec-msgpack",
    "packet-codec-postcard",
    "packet-codec-sonic-rs",
    "tower",
]
connection-extensions = []
default = []
full = ["all"]
packet-codec-cbor = ["wsio-core/packet-codec-cbor"]
packet-codec-msgpack = ["wsio-core/packet-codec-msgpack"]
packet-codec-postcard = ["wsio-core/packet-codec-postcard"]
packet-codec-sonic-rs = ["wsio-core/packet-codec-sonic-rs"]
tower = [
    "dep:tower-layer",
    "dep:tower-service",
]
tracing = [
    "dep:tracing",
    "wsio-core/tracing",
]

[lib]
name = "wsio_server"
path = "src/lib.rs"

[[test]]
name = "mod"
path = "tests/mod.rs"

[[bench]]
name = "server_realtime"
path = "benches/server_realtime.rs"
harness = false
required-features = []

[dependencies.anyhow]
version = "1.0.103"

[dependencies.arc-swap]
version = "1.9.2"

[dependencies.futures-util]
version = "0.3.32"
default-features = false

[dependencies.http]
version = "1.4.2"

[dependencies.http-body]
version = "1.1.0"

[dependencies.hyper]
version = "1.10.1"

[dependencies.hyper-util]
version = "0.1.20"
features = ["tokio"]

[dependencies.kikiutils]
version = "0.11.2"
features = [
    "atomic-enum-cell",
    "fx-collections",
]

[dependencies.num_enum]
version = "0.7.6"

[dependencies.parking_lot]
version = "0.12.5"

[dependencies.roaring]
version = "0.11.4"

[dependencies.serde]
version = "1.0.228"

[dependencies.tokio]
version = "1.52.4"
features = [
    "macros",
    "rt",
    "sync",
    "time",
]

[dependencies.tokio-tungstenite]
version = "0.30.0"
features = ["handshake"]
default-features = false

[dependencies.tokio-util]
version = "0.7.18"

[dependencies.tower-layer]
version = "0.3.3"
optional = true

[dependencies.tower-service]
version = "0.3.3"
optional = true

[dependencies.tracing]
version = "0.1.44"
optional = true

[dependencies.url]
version = "2.5.8"

[dependencies.wsio-core]
version = "0.12.11"

[dev-dependencies.axum]
version = "0.8.9"
features = ["ws"]

[dev-dependencies.criterion]
version = "0.8.2"
features = ["async_tokio"]

[dev-dependencies.wsio-client]
version = "0.8.11"
features = ["full"]

[build-dependencies]

[target.'cfg(all(target_os = "linux", target_env = "gnu"))'.dependencies]

[target.'cfg(all(target_os = "linux", target_env = "musl"))'.dependencies]

[target.'cfg(all(target_os = "macos", target_arch = "aarch64"))'.dependencies]

[target.'cfg(all(target_os = "macos", target_arch = "x86_64"))'.dependencies]

[target.'cfg(all(target_os = "windows", target_env = "gnu"))'.dependencies]

[target.'cfg(all(target_os = "windows", target_env = "msvc"))'.dependencies]

[target.'cfg(target_arch = "wasm32")'.dependencies]

[target.'cfg(target_arch = "wasm32")'.build-dependencies]

[target.'cfg(target_arch = "wasm32")'.dev-dependencies]

[target.'cfg(target_family = "wasm")'.dependencies]

[target.'cfg(target_family = "wasm")'.build-dependencies]

[target.'cfg(target_family = "wasm")'.dev-dependencies]

[target.'cfg(target_os = "linux")'.dependencies]

[target.'cfg(target_os = "linux")'.build-dependencies]

[target.'cfg(target_os = "linux")'.dev-dependencies]

[target.'cfg(target_os = "macos")'.dependencies]

[target.'cfg(target_os = "macos")'.build-dependencies]

[target.'cfg(target_os = "macos")'.dev-dependencies]

[target.'cfg(target_os = "windows")'.dependencies]

[target.'cfg(target_os = "windows")'.build-dependencies]

[target.'cfg(target_os = "windows")'.dev-dependencies]

[target."cfg(unix)".dependencies]

[target."cfg(unix)".build-dependencies]

[target."cfg(unix)".dev-dependencies]

[target."cfg(windows)".dependencies]

[target."cfg(windows)".build-dependencies]

[target."cfg(windows)".dev-dependencies]

[lints.clippy]
await_holding_lock = "deny"
await_holding_refcell_ref = "deny"
cast_ptr_alignment = "warn"
dbg_macro = "deny"
expect_used = "deny"
fn_to_numeric_cast_any = "deny"
items_after_statements = "warn"
large_futures = "warn"
large_stack_arrays = "warn"
large_types_passed_by_value = "warn"
manual_let_else = "warn"
match_same_arms = "warn"
missing_errors_doc = "allow"
missing_panics_doc = "allow"
missing_safety_doc = "allow"
multiple_crate_versions = "allow"
mutex_atomic = "warn"
needless_for_each = "warn"
print_stderr = "warn"
print_stdout = "warn"
rc_mutex = "warn"
todo = "warn"
transmute_ptr_to_ptr = "deny"
trivially_copy_pass_by_ref = "warn"
undocumented_unsafe_blocks = "deny"
unnecessary_mut_passed = "deny"
unnecessary_sort_by = "deny"
unreadable_literal = "warn"
unused_async = "deny"
unused_self = "warn"
unwrap_used = "deny"

[lints.clippy.all]
level = "warn"
priority = -1

[lints.clippy.cargo]
level = "warn"
priority = -1

[lints.rust]
missing_debug_implementations = "warn"
missing_docs = "allow"
unreachable_pub = "warn"
unsafe_op_in_unsafe_fn = "deny"
unused_must_use = "deny"

[lints.rustdoc]
broken_intra_doc_links = "warn"
missing_crate_level_docs = "allow"
private_intra_doc_links = "warn"