actr-hyper 0.3.1

Hyper — Actor platform infrastructure: sandbox, transport, scheduler, WASM engine, signing, AIS bootstrap, persistence & crypto primitives
Documentation
[package]
name = "actr-hyper"
version = "0.3.1"
edition.workspace = true
rust-version.workspace = true
license.workspace = true
repository.workspace = true
authors.workspace = true
description = "Hyper — Actor platform infrastructure: sandbox, transport, scheduler, WASM engine, signing, AIS bootstrap, persistence & crypto primitives"
keywords = ["actor", "sandbox", "webassembly", "transport", "platform"]
categories = ["asynchronous", "cryptography", "network-programming"]

[lints]
workspace = true

[features]
default = []
wasm-engine = ["dep:wasmtime", "dep:wasmtime-wasi"]
dynclib-engine = ["dep:libloading"]
opentelemetry = [
  "actr-config/opentelemetry",
  "dep:opentelemetry",
  "dep:opentelemetry-otlp",
  "dep:opentelemetry_sdk",
  "dep:tracing-opentelemetry",
]
# Enable test utilities for integration tests (e.g., force ICE restart on all connections)
test-utils = ["dep:actr-mock-actrix", "dep:webrtc-util"]

[dependencies]
# === Internal ===
actr-protocol.workspace = true
actr-runtime.workspace = true
actr-framework.workspace = true
actr-platform-traits.workspace = true
# actr-config is optional here for wasm32 compat; non-optional on native (see target deps)
actr-config = { workspace = true, optional = true }

# === Async Runtime (cross-platform minimal) ===
tokio = { version = "1.48", default-features = false, features = ["sync", "macros"] }
async-trait.workspace = true
futures-util.workspace = true

# === Serialization ===
serde.workspace = true
serde_json.workspace = true
prost.workspace = true
prost-types.workspace = true
bytes.workspace = true
toml.workspace = true

# === Utilities ===
uuid = { version = "1.18", features = ["v4", "serde"] }
thiserror.workspace = true
anyhow.workspace = true
tracing.workspace = true
chrono.workspace = true
base64.workspace = true
hex = "0.4"

# === Observability (optional) ===
opentelemetry = { workspace = true, optional = true }
opentelemetry-otlp = { workspace = true, optional = true }
opentelemetry_sdk = { workspace = true, optional = true }
tracing-opentelemetry = { workspace = true, optional = true }

# ═══════════════════════════════════════════════════════════════════════════════
# wasm32-specific dependencies
# ═══════════════════════════════════════════════════════════════════════════════
[target.'cfg(target_arch = "wasm32")'.dependencies]
uuid = { version = "1.18", features = ["v4", "serde", "js"] }
getrandom = { version = "0.2", features = ["js"] }

# ═══════════════════════════════════════════════════════════════════════════════
# Native-only dependencies (not available on wasm32)
# ═══════════════════════════════════════════════════════════════════════════════
[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
# actr-config is always available on native (overrides optional from [dependencies])
actr-config = { workspace = true }
actr-runtime-mailbox.workspace = true
actr-service-compat.workspace = true
actr-pack.workspace = true
zip = { version = "2", default-features = false, features = ["deflate"] }

# Storage
rusqlite = { workspace = true }

# Full async runtime (extends the cross-platform tokio above)
tokio = { version = "1.48", features = ["full"] }
tokio-stream = { version = "0.1", features = ["sync"] }
tokio-util = { version = "0.7", features = ["full"] }

# Cryptography (native implementations)
ed25519-dalek.workspace = true
sha2.workspace = true
rand.workspace = true

# Networking
webrtc.workspace = true
tokio-tungstenite.workspace = true
reqwest = { version = "0.12", default-features = false, features = ["rustls-tls-native-roots", "json"] }
url.workspace = true

# Utilities (native-only)
tracing-subscriber.workspace = true
tempfile.workspace = true
pwrzv.workspace = true
crossbeam.workspace = true
dashmap.workspace = true
dotenvy = "0.15"
either = "1.15"
num_cpus = "1.17"
actr-mock-actrix = { workspace = true, optional = true }
webrtc-util = { version = "0.12", optional = true }

# WASM Runtime (optional, native-only)
wasmtime = { workspace = true, optional = true }
wasmtime-wasi = { workspace = true, optional = true }

# Dynclib Runtime (native shared library, optional)
libloading = { version = "0.8", optional = true }

[dev-dependencies]
tokio = { workspace = true }
rand.workspace = true
mockito = "1.4"
wat = "1"
prost.workspace = true
tempfile.workspace = true
tokio-test = "0.4"
webrtc-ice = "0.14"
actr-pack.workspace = true
actr-hyper = { path = ".", features = ["test-utils"] }
actr-framework = { workspace = true, features = ["test-utils"] }