rtmp-runtime 0.6.0

Sans-IO RTMP 1.0 (Adobe Real-Time Messaging Protocol) ingest session engine — a driveable server-side publish state machine over the handshake, chunk stream, AMF0, and message layers; optional tokio socket adapter.
Documentation
[package]
name    = "rtmp-runtime"
version = "0.6.0"
edition = "2024"
description = "Sans-IO RTMP 1.0 (Adobe Real-Time Messaging Protocol) ingest session engine — a driveable server-side publish state machine over the handshake, chunk stream, AMF0, and message layers; optional tokio socket adapter."
license      = "MIT OR Apache-2.0"
authors      = ["Alex Fishlock <alex.fishlock@racingjag.com>"]
keywords = ["rtmp", "ingest", "streaming", "flv", "live"]
categories = ["multimedia", "network-programming"]
repository   = "https://github.com/fishloa/rust-broadcast"
readme       = "README.md"
rust-version.workspace = true
exclude = ["docs/**"]

[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]

[dependencies]
broadcast-common = { path = "../broadcast-common", version = "9.3", default-features = false }
thiserror = "2"
log       = "0.4"
serde     = { version = "1", optional = true, features = ["derive"] }

# `tokio` adapter (real sockets) — feature-gated; the sans-IO core needs none of it.
tokio = { version = "1", optional = true, features = ["net", "io-util", "rt", "macros", "sync"] }

[features]
default = []
# Derive serde on the public wire/event types.
serde = ["dep:serde"]
# Real-socket server IO over the sans-IO core (pulls tokio).
tokio = ["dep:tokio"]

[[example]]
name = "capture_publish"
required-features = ["tokio"]

[dev-dependencies]
transmux   = { path = "../transmux", version = "0.24", default-features = false, features = ["std"] }
serde_json = "1"