[workspace]
resolver = "2"
members = [
"container-runner",
"engine/packages/auth",
"engine/packages/auth-jwt",
"engine/packages/auth-policy",
"engine/packages/api-builder",
"engine/packages/api-peer",
"engine/packages/api-public",
"engine/packages/api-public-openapi-gen",
"engine/packages/api-types",
"engine/packages/api-util",
"engine/packages/bootstrap",
"engine/packages/build-meta",
"engine/packages/cache",
"engine/packages/cache-purge",
"engine/packages/cache-result",
"engine/packages/cli",
"engine/packages/config",
"engine/packages/config-schema-gen",
"engine/packages/datacenter",
"engine/packages/depot",
"engine/packages/depot-client",
"engine/packages/depot-client-embedded",
"engine/packages/depot-client-types",
"engine/packages/dynamic-config",
"engine/packages/engine",
"engine/packages/env",
"engine/packages/epoxy",
"engine/packages/error",
"engine/packages/error-macros",
"engine/packages/gasoline",
"engine/packages/gasoline-macros",
"engine/packages/gasoline-runtime",
"engine/packages/guard",
"engine/packages/guard-core",
"engine/packages/logs",
"engine/packages/metrics",
"engine/packages/metrics-server",
"engine/packages/namespace",
"engine/packages/outbound-guard",
"engine/packages/pegboard",
"engine/packages/pegboard-envoy",
"engine/packages/pegboard-gateway",
"engine/packages/pegboard-gateway2",
"engine/packages/pegboard-gateway3",
"engine/packages/pegboard-outbound",
"engine/packages/pegboard-runner",
"engine/packages/perf",
"engine/packages/pools",
"engine/packages/postgres-util",
"engine/packages/profiling",
"engine/packages/runner-protocol",
"engine/packages/runtime",
"engine/packages/service-manager",
"engine/packages/telemetry",
"engine/packages/term",
"engine/packages/test-deps",
"engine/packages/test-deps-docker",
"engine/packages/test-snapshot-gen",
"engine/packages/tracing-utils",
"engine/packages/types",
"engine/packages/universaldb",
"engine/packages/universalpubsub",
"engine/packages/util",
"engine/packages/util-id",
"engine/packages/util-serde",
"engine/packages/version-management",
"engine/packages/workflow-worker",
"engine/sdks/rust/actor-runtime-socket-protocol",
"engine/sdks/rust/api-full",
"engine/sdks/rust/data",
"engine/sdks/rust/depot-protocol",
"engine/sdks/rust/envoy-client",
"engine/sdks/rust/envoy-protocol",
"engine/sdks/rust/epoxy-protocol",
"engine/sdks/rust/test-envoy",
"engine/sdks/rust/universaldb-commit",
"engine/sdks/rust/ups-protocol",
"rivetkit-rust/packages/actor-persist",
"rivetkit-rust/packages/client",
"rivetkit-rust/packages/client-protocol",
"rivetkit-rust/packages/engine-process",
"rivetkit-rust/packages/inspector-protocol",
"rivetkit-rust/packages/rivetkit",
"rivetkit-rust/packages/rivetkit-core",
"rivetkit-rust/packages/shared-types",
"rivetkit-typescript/packages/rivetkit-napi",
"rivetkit-typescript/packages/rivetkit-wasm",
"examples/chat-room-rust",
"examples/hello-world-rust"
]
[workspace.package]
version = "2.3.20"
edition = "2024"
authors = [ "Rivet Gaming, LLC <developer@rivet.dev>" ]
license = "Apache-2.0"
homepage = "https://rivet.dev"
repository = "https://github.com/rivet-dev/rivet"
[workspace.dependencies]
anstyle = "1"
anyhow = "1.0.82"
async-channel = "2.1.1"
async-stream = "0.3"
async-trait = "0.1"
axum-test = "17"
base64 = "0.22"
bcrypt = "0.13.0"
ciborium = "0.2"
bytes = "1.6.0"
cjson = "0.1"
colored_json = "5.0.0"
console-subscriber = "0.4"
dirs = "5.0.1"
divan = "0.1.17"
ed25519-dalek = { version = "2.2", features = [ "pkcs8", "rand_core", "zeroize" ] }
foundationdb-tuple = "0.9.1"
fs_extra = "1.3.0"
futures = "0.3.30"
futures-util = "0.3"
glob = "0.3.1"
governor = "0.6"
heck = "0.5"
hex = "0.4"
http = "1.3.1"
http-body = "1.0.0"
http-body-util = "0.1.1"
hyper-tungstenite = "0.17.0"
include_dir = "0.7.4"
indoc = "2.0.5"
itertools = "0.14.0"
json5 = "0.4.1"
jsonwebtoken = { version = "11", default-features = false, features = [ "aws_lc_rs" ] }
lazy_static = "1.4"
libc = "0.2"
lz4_flex = "0.11.3"
maplit = "1.0.2"
md5 = "0.7.0"
once_cell = "1.20.2"
opentelemetry-appender-tracing = "0.28.1"
papaya = "0.2.1"
parking_lot = "0.12"
pest_derive = "2.7"
portpicker = "0.1"
prettyplease = "0.2"
prometheus = "0.14"
quote = "1.0"
rand = "0.8"
regex = "1.4"
replace_with = "0.1.8"
rstest = "0.26.1"
rustls-pemfile = "2.2.0"
rustyline = "15.0.0"
scc = "3.6.12"
semver = "1.0.27"
serde_bytes = "0.11.17"
serde_html_form = "0.2.7"
serde_yaml = "0.9.34"
sha2 = "0.10"
slog = "2.7"
slog-async = "2.8"
slog-term = "2.9"
scopeguard = "1.2"
statrs = "0.18"
subtle = "2"
sysinfo = "0.37.2"
tabled = "0.17.0"
tempfile = "3.13.0"
testcontainers = "0.24"
thiserror = "1.0.64"
tokio-cron-scheduler = "0.13.0"
tokio-stream = "0.1.15"
tokio-util = "0.7"
tower = "0.5"
tracing = "0.1.40"
tracing-core = "0.1"
tracing-opentelemetry = "0.29"
tracing-slog = "0.2"
vergen-gitcl = "1.0.0"
zeroize = { version = "1.8", features = [ "derive" ] }
reqwest-eventsource = "0.6.0"
[workspace.dependencies.async-nats]
package = "rivet-async-nats"
version = "0.46.0"
[workspace.dependencies.pyroscope]
version = "2.0"
features = [ "backend-pprof-rs" ]
[workspace.dependencies.xxhash-rust]
version = "=0.8.15"
features = [ "xxh3" ]
[workspace.dependencies.hyper-rustls]
version = "0.27.7"
default-features = false
features = [ "http1", "http2", "native-tokio", "webpki-tokio", "ring" ]
[workspace.dependencies.rusqlite]
version = "0.32.1"
features = [ "bundled" ]
[workspace.dependencies.tokio-tungstenite]
version = "0.26.0"
features = [ "rustls-tls-native-roots", "rustls-tls-webpki-roots" ]
[workspace.dependencies.vergen]
version = "9.0.4"
features = [ "build", "cargo", "rustc" ]
[workspace.dependencies.sentry]
version = "0.45.0"
default-features = false
features = [
"anyhow",
"backtrace",
"contexts",
"debug-images",
"panic",
"reqwest",
"rustls",
"tracing"
]
[workspace.dependencies.windows]
version = "0.58"
features = [
"Win32",
"Win32_Storage",
"Win32_Storage_FileSystem",
"Win32_System",
"Win32_System_Console",
"Win32_Security"
]
[workspace.dependencies.pest]
version = "2.7"
[workspace.dependencies.rocksdb]
version = "0.24"
features = [ "multi-threaded-cf" ]
[workspace.dependencies.hyper-util]
version = "0.1.10"
features = [ "full" ]
[workspace.dependencies.rustls]
version = "0.23.25"
default-features = false
features = [ "ring", "std", "logging" ]
[workspace.dependencies.tokio-rustls]
version = "0.26.2"
default-features = false
features = [ "ring", "logging" ]
[workspace.dependencies.utoipa]
version = "5.4.0"
features = [ "uuid" ]
[workspace.dependencies.axum]
version = "0.8"
features = [ "http2", "macros" ]
[workspace.dependencies.axum-extra]
version = "0.10.1"
features = [ "query" ]
[workspace.dependencies.tower-http]
version = "0.6"
features = [ "cors", "trace" ]
[workspace.dependencies.serde_json]
version = "1.0.128"
features = [ "raw_value" ]
[workspace.dependencies.nix]
version = "0.30"
default-features = false
features = [ "fs", "user", "signal" ]
[workspace.dependencies.chrono-tz]
version = "0.10.4"
[workspace.dependencies.croner]
version = "2.2.0"
[workspace.dependencies.chrono]
version = "0.4.38"
features = [ "now" ]
[workspace.dependencies.clap]
version = "4.3"
features = [ "derive", "cargo" ]
[workspace.dependencies.clickhouse]
version = "0.14.2"
features = [ "uuid", "inserter" ]
[workspace.dependencies.config]
version = "0.14.0"
default-features = false
features = [ "async", "json", "yaml" ]
[workspace.dependencies.hyper]
version = "0.14"
features = [ "server", "http1", "tcp" ]
[workspace.dependencies.indexmap]
version = "2.0"
features = [ "serde" ]
[workspace.dependencies.ipnet]
version = "2.10.1"
features = [ "serde" ]
[workspace.dependencies.moka]
version = "0.12"
features = [ "future" ]
[workspace.dependencies.opentelemetry]
version = "0.28"
features = [ "trace", "metrics", "logs" ]
[workspace.dependencies.opentelemetry-http]
version = "0.28"
[workspace.dependencies.opentelemetry-otlp]
version = "0.28"
features = [ "trace", "metrics", "logs", "grpc-tonic" ]
[workspace.dependencies.opentelemetry_sdk]
version = "0.28"
features = [ "trace", "metrics", "logs" ]
[workspace.dependencies.opentelemetry-semantic-conventions]
version = "0.28"
features = [ "semconv_experimental" ]
[workspace.dependencies.opentelemetry-stdout]
version = "0.28.0"
features = [ "trace", "metrics", "logs" ]
[workspace.dependencies.proc-macro2]
version = "1.0"
features = [ "span-locations" ]
[workspace.dependencies.reqwest]
version = "0.12.22"
default-features = false
features = [ "json", "rustls-tls-native-roots", "rustls-tls-webpki-roots" ]
[workspace.dependencies.schemars]
version = "0.8.21"
features = [ "url", "uuid1" ]
[workspace.dependencies.serde]
version = "1.0"
features = [ "derive" ]
[workspace.dependencies.strum]
version = "0.26.3"
features = [ "derive" ]
[workspace.dependencies.syn]
version = "2.0"
features = [ "full", "extra-traits" ]
[workspace.dependencies.url]
version = "2.5.4"
features = [ "serde" ]
[workspace.dependencies.urlencoding]
version = "2.1"
[workspace.dependencies.uuid]
version = "1.11.0"
features = [ "v4", "serde" ]
[workspace.dependencies.tokio]
version = "1.44.0"
features = [ "full", "tracing" ]
[workspace.dependencies.tokio-postgres]
version = "0.7"
features = [ "with-chrono-0_4" ]
[workspace.dependencies.deadpool-postgres]
version = "0.14.1"
[workspace.dependencies.tokio-postgres-rustls]
version = "0.13"
[workspace.dependencies.webpki-roots]
version = "0.26"
[workspace.dependencies.tracing-logfmt]
version = "0.3"
features = [ "ansi_logs" ]
[workspace.dependencies.tracing-stackdriver]
version = "0.10.0"
default-features = false
[workspace.dependencies.tracing-subscriber]
version = "0.3"
default-features = false
features = [ "ansi", "fmt", "json", "env-filter" ]
[workspace.dependencies.serde_bare]
git = "https://github.com/rivet-dev/serde_bare"
rev = "f63f155db7e0ab989255ee0d6991ff8eb9ebee25"
version = "0.5.0"
[workspace.dependencies.vbare]
version = "0.0.5"
[workspace.dependencies.vbare-compiler]
version = "0.0.5"
[workspace.dependencies.rivet-api-builder]
path = "engine/packages/api-builder"
[workspace.dependencies.rivet-auth-policy]
path = "engine/packages/auth-policy"
[workspace.dependencies.rivet-auth]
path = "engine/packages/auth"
[workspace.dependencies.rivet-auth-jwt]
path = "engine/packages/auth-jwt"
[workspace.dependencies.rivet-api-peer]
path = "engine/packages/api-peer"
[workspace.dependencies.rivet-api-public]
path = "engine/packages/api-public"
[workspace.dependencies.rivet-api-public-openapi-gen]
path = "engine/packages/api-public-openapi-gen"
[workspace.dependencies.rivet-api-types]
path = "engine/packages/api-types"
[workspace.dependencies.rivet-api-util]
path = "engine/packages/api-util"
[workspace.dependencies.rivet-bootstrap]
path = "engine/packages/bootstrap"
[workspace.dependencies.rivet-build-meta]
path = "engine/packages/build-meta"
[workspace.dependencies.rivet-cache]
path = "engine/packages/cache"
[workspace.dependencies.rivet-cache-purge]
path = "engine/packages/cache-purge"
[workspace.dependencies.rivet-cache-result]
path = "engine/packages/cache-result"
[workspace.dependencies.rivet-cli]
path = "engine/packages/cli"
[workspace.dependencies.rivet-config]
path = "engine/packages/config"
[workspace.dependencies.rivet-config-schema-gen]
path = "engine/packages/config-schema-gen"
[workspace.dependencies.datacenter]
path = "engine/packages/datacenter"
[workspace.dependencies.depot]
path = "engine/packages/depot"
[workspace.dependencies.rivet-depot-client]
path = "engine/packages/depot-client"
[workspace.dependencies.depot-client-embedded]
path = "engine/packages/depot-client-embedded"
[workspace.dependencies.rivet-depot-client-types]
path = "engine/packages/depot-client-types"
[workspace.dependencies.rivet-dynamic-config]
path = "engine/packages/dynamic-config"
[workspace.dependencies.rivet-engine]
path = "engine/packages/engine"
[workspace.dependencies.rivet-env]
path = "engine/packages/env"
[workspace.dependencies.epoxy]
path = "engine/packages/epoxy"
[workspace.dependencies.rivet-error]
path = "engine/packages/error"
version = "=2.3.20"
[workspace.dependencies.rivet-error-macros]
path = "engine/packages/error-macros"
version = "=2.3.20"
[workspace.dependencies.gasoline]
path = "engine/packages/gasoline"
[workspace.dependencies.gas]
package = "gasoline"
path = "engine/packages/gasoline"
[workspace.dependencies.gasoline-macros]
path = "engine/packages/gasoline-macros"
[workspace.dependencies.gasoline-runtime]
path = "engine/packages/gasoline-runtime"
[workspace.dependencies.rivet-guard]
path = "engine/packages/guard"
[workspace.dependencies.rivet-guard-core]
path = "engine/packages/guard-core"
[workspace.dependencies.rivet-logs]
path = "engine/packages/logs"
[workspace.dependencies.rivet-metrics]
path = "engine/packages/metrics"
version = "=2.3.20"
[workspace.dependencies.rivet-metrics-server]
path = "engine/packages/metrics-server"
[workspace.dependencies.namespace]
path = "engine/packages/namespace"
[workspace.dependencies.rivet-outbound-guard]
path = "engine/packages/outbound-guard"
[workspace.dependencies.pegboard]
path = "engine/packages/pegboard"
[workspace.dependencies.pegboard-envoy]
path = "engine/packages/pegboard-envoy"
[workspace.dependencies.pegboard-gateway]
path = "engine/packages/pegboard-gateway"
[workspace.dependencies.pegboard-gateway2]
path = "engine/packages/pegboard-gateway2"
[workspace.dependencies.pegboard-gateway3]
path = "engine/packages/pegboard-gateway3"
[workspace.dependencies.pegboard-outbound]
path = "engine/packages/pegboard-outbound"
[workspace.dependencies.pegboard-runner]
path = "engine/packages/pegboard-runner"
[workspace.dependencies.rivet-perf]
path = "engine/packages/perf"
[workspace.dependencies.rivet-pools]
path = "engine/packages/pools"
[workspace.dependencies.rivet-postgres-util]
path = "engine/packages/postgres-util"
[workspace.dependencies.rivet-profiling]
path = "engine/packages/profiling"
[workspace.dependencies.rivet-runner-protocol]
path = "engine/packages/runner-protocol"
[workspace.dependencies.rivet-runtime]
path = "engine/packages/runtime"
[workspace.dependencies.rivet-service-manager]
path = "engine/packages/service-manager"
[workspace.dependencies.rivet-telemetry]
path = "engine/packages/telemetry"
[workspace.dependencies.rivet-term]
path = "engine/packages/term"
[workspace.dependencies.rivet-test-deps]
path = "engine/packages/test-deps"
[workspace.dependencies.rivet-test-deps-docker]
path = "engine/packages/test-deps-docker"
[workspace.dependencies.test-snapshot-gen]
path = "engine/packages/test-snapshot-gen"
[workspace.dependencies.rivet-tracing-utils]
path = "engine/packages/tracing-utils"
[workspace.dependencies.rivet-types]
path = "engine/packages/types"
[workspace.dependencies.universaldb]
path = "engine/packages/universaldb"
[workspace.dependencies.universalpubsub]
path = "engine/packages/universalpubsub"
[workspace.dependencies.rivet-util]
path = "engine/packages/util"
[workspace.dependencies.util]
package = "rivet-util"
path = "engine/packages/util"
[workspace.dependencies.rivet-util-id]
path = "engine/packages/util-id"
default-features = false
[workspace.dependencies.rivet-util-serde]
path = "engine/packages/util-serde"
version = "=2.3.20"
[workspace.dependencies.rivet-version-management]
path = "engine/packages/version-management"
[workspace.dependencies.rivet-workflow-worker]
path = "engine/packages/workflow-worker"
[workspace.dependencies.rivet-actor-runtime-socket-protocol]
path = "engine/sdks/rust/actor-runtime-socket-protocol"
version = "=2.3.20"
[workspace.dependencies.rivet-api-full]
path = "engine/sdks/rust/api-full"
[workspace.dependencies.rivet-data]
path = "engine/sdks/rust/data"
[workspace.dependencies.rivet-depot-protocol]
path = "engine/sdks/rust/depot-protocol"
[workspace.dependencies.rivet-envoy-client]
path = "engine/sdks/rust/envoy-client"
default-features = false
version = "=2.3.20"
[workspace.dependencies.rivet-envoy-protocol]
path = "engine/sdks/rust/envoy-protocol"
version = "=2.3.20"
[workspace.dependencies.rivetkit-client-protocol]
path = "rivetkit-rust/packages/client-protocol"
version = "=2.3.20"
[workspace.dependencies.rivetkit-client]
path = "rivetkit-rust/packages/client"
version = "=2.3.20"
[workspace.dependencies.rivetkit-actor-persist]
path = "rivetkit-rust/packages/actor-persist"
version = "=2.3.20"
[workspace.dependencies.rivetkit-inspector-protocol]
path = "rivetkit-rust/packages/inspector-protocol"
version = "=2.3.20"
[workspace.dependencies.rivetkit]
path = "rivetkit-rust/packages/rivetkit"
version = "=2.3.20"
[workspace.dependencies.rivetkit-core]
path = "rivetkit-rust/packages/rivetkit-core"
version = "=2.3.20"
[workspace.dependencies.rivetkit-shared-types]
path = "rivetkit-rust/packages/shared-types"
version = "=2.3.20"
[workspace.dependencies.depot-client-types]
package = "rivet-depot-client-types"
path = "engine/packages/depot-client-types"
version = "=2.3.20"
[workspace.dependencies.rivetkit-engine-process]
path = "rivetkit-rust/packages/engine-process"
version = "=2.3.20"
[workspace.dependencies.depot-client]
package = "rivet-depot-client"
path = "engine/packages/depot-client"
version = "=2.3.20"
[workspace.dependencies.epoxy-protocol]
path = "engine/sdks/rust/epoxy-protocol"
[workspace.dependencies.rivet-test-envoy]
path = "engine/sdks/rust/test-envoy"
[workspace.dependencies.rivet-universaldb-commit]
path = "engine/sdks/rust/universaldb-commit"
[workspace.dependencies.rivet-ups-protocol]
path = "engine/sdks/rust/ups-protocol"
[profile.dev]
overflow-checks = false
debug = "line-tables-only"
lto = "off"
[profile.dev.build-override]
opt-level = 3
[profile.release]
debug = false
lto = "fat"
codegen-units = 1
opt-level = 3
[profile.self-host-release]
inherits = "release"
lto = "thin"
codegen-units = 16
strip = "symbols"
[profile.profiling]
inherits = "release"
debug = 1
lto = "thin"
codegen-units = 16
strip = false
[profile.quick]
inherits = "dev"
debug = false
strip = "symbols"
opt-level = 1
panic = "abort"
codegen-units = 256