examples/channels_chat.rs (required-features phoenix): ephemeral room:* and persistent session:* side by side over phoenix.js V2 JSON, stdin-driven graceful shutdown (the ws_chat pattern). Smoke-tested live: rejoin after transport drop lands on the same instance (state counter persists across three transports), broadcasts carry the new join generation's ref. README: channels section (feature split, core trait walkthrough, session persistence semantics incl. the re-entrant-join contract). ROADMAP: v0.6 marked done with the full as-landed decision list, chunked as committed.
44 lines
977 B
TOML
44 lines
977 B
TOML
[package]
|
|
name = "urus"
|
|
version = "0.1.0"
|
|
edition = "2021"
|
|
rust-version = "1.95"
|
|
description = "Cowboy/bandit-style HTTP library for the smarm actor runtime"
|
|
|
|
[dependencies]
|
|
smarm = { path = "../smarm" }
|
|
httparse = "1.9"
|
|
libc = "0.2"
|
|
sha1_smol = "1"
|
|
|
|
# dep #4, ratified 2026-06-12: serde/serde_json behind the opt-in
|
|
# "phoenix" feature only — the "channels" core stays dependency-free.
|
|
serde = { version = "1", optional = true }
|
|
serde_json = { version = "1", optional = true }
|
|
|
|
[features]
|
|
smarm-trace = ["smarm/smarm-trace"]
|
|
channels = []
|
|
phoenix = ["channels", "dep:serde", "dep:serde_json"]
|
|
|
|
[dev-dependencies]
|
|
serde = { version = "1", features = ["derive"] }
|
|
serde_json = "1"
|
|
|
|
[profile.dev]
|
|
panic = "unwind"
|
|
|
|
[profile.release]
|
|
panic = "unwind"
|
|
lto = "thin"
|
|
codegen-units = 1
|
|
|
|
[[example]]
|
|
name = "crud"
|
|
path = "examples/crud.rs"
|
|
|
|
[[example]]
|
|
name = "channels_chat"
|
|
path = "examples/channels_chat.rs"
|
|
required-features = ["phoenix"]
|