sipx-testkit 1.0.0-rc.2

Deterministic SIP and RTP tests with bounded realtime peers, virtual time, and RFC corpora
Documentation
[package]
name = "sipx-testkit"
description = "Deterministic SIP and RTP tests with bounded realtime peers, virtual time, and RFC corpora"
version.workspace = true
edition.workspace = true
rust-version.workspace = true
license.workspace = true
repository.workspace = true
authors.workspace = true
keywords.workspace = true
categories.workspace = true

[package.metadata.sipx-supported-test-surface]
# This is a separate Cargo target that consumes the public library API. The app-surface checker
# validates the target and import mechanically; it does not admit this crate's dependencies into
# the production application surface.
example = "rtp_echo"

[dependencies]
sipx-sip.workspace = true
sipx-call.workspace = true
sipx-audio.workspace = true
sipx-rtp.workspace = true
# The loopback link's tests drive the transaction machines against the shared timer queue, which
# lives in the transport crate — the point of `X-14` being that both take `now` as an argument.
sipx-transport.workspace = true
# Not a dev-dependency: the fixtures this crate *is* are what other crates' tests depend on.
rcgen.workspace = true
bytes.workspace = true
# The stand-in realtime peer of `docs/specs/openai-realtime.md` is a WebSocket *server*: RFC 6455
# framing and the handshake, the JSON events of §5, and RFC 4648 §4 for the audio they carry. No
# TLS features, because the peer is reached over loopback cleartext — a fixture that needed a
# certificate would need a trust decision from every test that used it.
tokio-tungstenite.workspace = true
futures-util.workspace = true
serde_json.workspace = true
base64.workspace = true
thiserror.workspace = true
tokio = { workspace = true, features = ["rt", "sync", "time", "macros", "net", "io-util"] }
tokio-util.workspace = true

[dev-dependencies]
# `test-util` gives the paused clock the pacing test needs: it asserts on *when* calls start,
# which would otherwise mean sleeping for real.
tokio = { workspace = true, features = ["full", "test-util"] }
tracing.workspace = true

[lints]
workspace = true