swactor/Cargo.toml

54 lines
1.2 KiB
TOML
Raw Normal View History

[workspace]
feat: extract swactor-std crate with RuntimeExtension hook pattern Debloat the core swactor crate by moving higher-level features to a new swactor-std crate, leaving core with only the essential actor primitives (spawn, send, stop, timers, lifecycle hooks). Phase 1: Move Supervisor + Router to swactor-std - Supervisor (ChildSpec, RestartPolicy, SupervisorStrategy) and Router (RoutingStrategy) extracted to crates/std/ - ~465 lines removed from src/actor.rs Phase 2: Remove restart fields from Actor<A> - Actor<A> slimmed to { inner: A } — no restart_factory, max_restarts - Removed spawn_restartable from Ctx and Runtime - Simplified panic handler: always poison, never inline restart - Supervision-based restart via Supervisor in swactor-std Phase 3: RuntimeExtension trait + registry extraction - New src/extension.rs: RuntimeExtension trait (on_actor_death, cleanup_dead, as_any) — single hybrid hook for lifecycle events - ContextInner slimmed from 11 methods to 5 (removed 7 registry methods, added extension()) - Ctx slimmed: removed all registry methods, added extension() accessor - Runtime: removed 3 registry fields + 9 methods, added with_extension() builder + extension() accessor - TickContext: replaced 3 registry fields with extension hook - tick_once phase 7: uses ext.on_actor_death() + ext.cleanup_dead() - Moved NameRegistry, MonitorRegistry, GroupRegistry from delivery.rs to swactor-std - StdExtension wraps the 3 registries, implements RuntimeExtension - Extension traits: CtxMonitoring, CtxNaming, CtxGroups on Ctx; RuntimeNaming, RuntimeGroups on Runtime - Down, StopReason, MonitorRef, handle_down remain in core - AddrMap/AddrSet/AddrBuildHasher made public, re-exported - MonitorRef::from_raw(u64) added for cross-crate construction All 140 tests pass. Benchmarks updated. Authored by Claude, lovingly guided by Zachery Aaron Shores-Chmielewski
2026-02-13 06:59:29 +00:00
members = [".", "crates/python", "crates/wasm", "crates/simulation", "crates/runtime-dashboard", "crates/distribution", "crates/simulation-dashboard", "crates/std"]
exclude = ["tools/depgraph"]
[package]
name = "swactor"
version = "0.1.0"
edition = "2024"
autobenches = false
[profile.bench]
debug = true
strip = false
[lib]
crate-type = ["rlib"]
[features]
default = ["getrandom"]
getrandom = ["dep:getrandom"]
serde = ["dep:serde"]
tracing = ["dep:tracing"]
no_random = [] # compile without access to a source of randomness
transport = [] # transport-agnostic messaging (no mandatory deps; codec is user-provided)
[dependencies]
getrandom = { version = "0.2", optional = true }
serde = { version = "1", features = ["derive"], optional = true }
tracing = { version = "0.1", optional = true }
crossbeam-queue = "0.3.12"
crossbeam-utils = "0.8.21"
[dev-dependencies]
criterion = { version = "0.5", features = ["html_reports"] }
proptest = "1"
proptest-state-machine = "0.3"
feat: extract swactor-std crate with RuntimeExtension hook pattern Debloat the core swactor crate by moving higher-level features to a new swactor-std crate, leaving core with only the essential actor primitives (spawn, send, stop, timers, lifecycle hooks). Phase 1: Move Supervisor + Router to swactor-std - Supervisor (ChildSpec, RestartPolicy, SupervisorStrategy) and Router (RoutingStrategy) extracted to crates/std/ - ~465 lines removed from src/actor.rs Phase 2: Remove restart fields from Actor<A> - Actor<A> slimmed to { inner: A } — no restart_factory, max_restarts - Removed spawn_restartable from Ctx and Runtime - Simplified panic handler: always poison, never inline restart - Supervision-based restart via Supervisor in swactor-std Phase 3: RuntimeExtension trait + registry extraction - New src/extension.rs: RuntimeExtension trait (on_actor_death, cleanup_dead, as_any) — single hybrid hook for lifecycle events - ContextInner slimmed from 11 methods to 5 (removed 7 registry methods, added extension()) - Ctx slimmed: removed all registry methods, added extension() accessor - Runtime: removed 3 registry fields + 9 methods, added with_extension() builder + extension() accessor - TickContext: replaced 3 registry fields with extension hook - tick_once phase 7: uses ext.on_actor_death() + ext.cleanup_dead() - Moved NameRegistry, MonitorRegistry, GroupRegistry from delivery.rs to swactor-std - StdExtension wraps the 3 registries, implements RuntimeExtension - Extension traits: CtxMonitoring, CtxNaming, CtxGroups on Ctx; RuntimeNaming, RuntimeGroups on Runtime - Down, StopReason, MonitorRef, handle_down remain in core - AddrMap/AddrSet/AddrBuildHasher made public, re-exported - MonitorRef::from_raw(u64) added for cross-crate construction All 140 tests pass. Benchmarks updated. Authored by Claude, lovingly guided by Zachery Aaron Shores-Chmielewski
2026-02-13 06:59:29 +00:00
swactor-std = { path = "crates/std" }
[[bench]]
name = "runtime_benchmarks"
harness = false
2026-02-09 14:02:40 +00:00
[[bench]]
name = "mt_benchmarks"
harness = false
[[bench]]
name = "hasher_benchmarks"
harness = false
[[example]]
name = "tcp_ping_pong"
required-features = ["transport"]