mirror of
https://github.com/clockworklabs/SpacetimeDB.git
synced 2026-05-14 11:48:28 -04:00
bb43213245
# Description of Changes Currently based on #3361 Implements most of the TS module API (not yet a function for type aliases). # Expected complexity level and risk <!-- How complicated do you think these changes are? Grade on a scale from 1 to 5, where 1 is a trivial change, and 5 is a deep-reaching and complex change. This complexity rating applies not only to the complexity apparent in the diff, but also to its interactions with existing and future code. If you answered more than a 2, explain what is complex about the PR, and what other components it interacts with in potentially concerning ways. --> # Testing <!-- Describe any testing you've done, and any testing you'd like your reviewers to do, so that you're confident that all the changes work as expected! --> - [x] Extremely basic module stuff works - [ ] <!-- maybe a test you want a reviewer to do, so they can check it off when they're satisfied. --> --------- Signed-off-by: Noa <coolreader18@gmail.com> Co-authored-by: Tyler Cloutier <cloutiertyler@aol.com> Co-authored-by: = <cloutiertyler@gmail.com> Co-authored-by: Tyler Cloutier <cloutiertyler@users.noreply.github.com> Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com> Co-authored-by: Zeke Foppa <bfops@users.noreply.github.com>
356 lines
11 KiB
TOML
356 lines
11 KiB
TOML
[workspace]
|
|
members = [
|
|
"crates/auth",
|
|
"crates/bench",
|
|
"crates/bindings-sys",
|
|
"crates/bindings",
|
|
"crates/bindings-macro",
|
|
"crates/cli",
|
|
"crates/client-api",
|
|
"crates/client-api-messages",
|
|
"crates/commitlog",
|
|
"crates/core",
|
|
"crates/data-structures",
|
|
"crates/datastore",
|
|
"crates/durability",
|
|
"crates/execution",
|
|
"crates/expr",
|
|
"crates/fs-utils",
|
|
"crates/lib",
|
|
"crates/metrics",
|
|
"crates/paths",
|
|
"crates/pg",
|
|
"crates/physical-plan",
|
|
"crates/primitives",
|
|
"crates/query",
|
|
"crates/sats",
|
|
"crates/schema",
|
|
"sdks/rust",
|
|
"sdks/unreal",
|
|
"crates/snapshot",
|
|
"crates/sqltest",
|
|
"crates/sql-parser",
|
|
"crates/standalone",
|
|
"crates/subscription",
|
|
"crates/table",
|
|
"crates/testing",
|
|
"crates/update",
|
|
"crates/vm",
|
|
"modules/benchmarks",
|
|
"modules/keynote-benchmarks",
|
|
"modules/perf-test",
|
|
"modules/module-test",
|
|
"modules/quickstart-chat",
|
|
"modules/sdk-test",
|
|
"modules/sdk-test-connect-disconnect",
|
|
"sdks/rust/tests/test-client",
|
|
"sdks/rust/tests/test-counter",
|
|
"sdks/rust/tests/connect_disconnect_client",
|
|
"tools/upgrade-version",
|
|
"tools/license-check",
|
|
"crates/bindings-typescript/test-app/server",
|
|
]
|
|
default-members = ["crates/cli", "crates/standalone", "crates/update"]
|
|
# cargo feature graph resolver. v3 is default in edition2024 but workspace
|
|
# manifests don't have editions.
|
|
resolver = "3"
|
|
|
|
[profile.release]
|
|
opt-level = 3
|
|
debug-assertions = false
|
|
overflow-checks = false
|
|
lto = "thin"
|
|
panic = 'unwind'
|
|
incremental = false
|
|
codegen-units = 16
|
|
rpath = false
|
|
|
|
[profile.release-fast]
|
|
inherits = "release"
|
|
lto = "thin"
|
|
|
|
[profile.dev]
|
|
opt-level = 0
|
|
debug = true
|
|
debug-assertions = true
|
|
overflow-checks = true
|
|
lto = false
|
|
panic = 'unwind'
|
|
incremental = true
|
|
codegen-units = 256
|
|
rpath = false
|
|
|
|
[profile.bench]
|
|
debug = true
|
|
|
|
[profile.test]
|
|
opt-level = 1
|
|
debug = true
|
|
|
|
[profile.profiling]
|
|
inherits = "release"
|
|
debug = true
|
|
|
|
[workspace.package]
|
|
version = "1.6.0"
|
|
edition = "2021"
|
|
# update rust-toolchain.toml too!
|
|
rust-version = "1.90.0"
|
|
|
|
[workspace.dependencies]
|
|
spacetimedb = { path = "crates/bindings", version = "=1.6.0" }
|
|
spacetimedb-auth = { path = "crates/auth", version = "=1.6.0" }
|
|
spacetimedb-bindings-macro = { path = "crates/bindings-macro", version = "=1.6.0" }
|
|
spacetimedb-bindings-sys = { path = "crates/bindings-sys", version = "=1.6.0" }
|
|
spacetimedb-cli = { path = "crates/cli", version = "=1.6.0" }
|
|
spacetimedb-client-api = { path = "crates/client-api", version = "=1.6.0" }
|
|
spacetimedb-client-api-messages = { path = "crates/client-api-messages", version = "=1.6.0" }
|
|
spacetimedb-codegen = { path = "crates/codegen", version = "=1.6.0" }
|
|
spacetimedb-commitlog = { path = "crates/commitlog", version = "=1.6.0" }
|
|
spacetimedb-core = { path = "crates/core", version = "=1.6.0" }
|
|
spacetimedb-data-structures = { path = "crates/data-structures", version = "=1.6.0" }
|
|
spacetimedb-datastore = { path = "crates/datastore", version = "=1.6.0" }
|
|
spacetimedb-durability = { path = "crates/durability", version = "=1.6.0" }
|
|
spacetimedb-execution = { path = "crates/execution", version = "=1.6.0" }
|
|
spacetimedb-expr = { path = "crates/expr", version = "=1.6.0" }
|
|
spacetimedb-lib = { path = "crates/lib", default-features = false, version = "=1.6.0" }
|
|
spacetimedb-memory-usage = { path = "crates/memory-usage", version = "=1.6.0", default-features = false }
|
|
spacetimedb-metrics = { path = "crates/metrics", version = "=1.6.0" }
|
|
spacetimedb-paths = { path = "crates/paths", version = "=1.6.0" }
|
|
spacetimedb-pg = { path = "crates/pg", version = "=1.6.0" }
|
|
spacetimedb-physical-plan = { path = "crates/physical-plan", version = "=1.6.0" }
|
|
spacetimedb-primitives = { path = "crates/primitives", version = "=1.6.0" }
|
|
spacetimedb-query = { path = "crates/query", version = "=1.6.0" }
|
|
spacetimedb-sats = { path = "crates/sats", version = "=1.6.0" }
|
|
spacetimedb-schema = { path = "crates/schema", version = "=1.6.0" }
|
|
spacetimedb-standalone = { path = "crates/standalone", version = "=1.6.0" }
|
|
spacetimedb-sql-parser = { path = "crates/sql-parser", version = "=1.6.0" }
|
|
spacetimedb-table = { path = "crates/table", version = "=1.6.0" }
|
|
spacetimedb-vm = { path = "crates/vm", version = "=1.6.0" }
|
|
spacetimedb-fs-utils = { path = "crates/fs-utils", version = "=1.6.0" }
|
|
spacetimedb-snapshot = { path = "crates/snapshot", version = "=1.6.0" }
|
|
spacetimedb-subscription = { path = "crates/subscription", version = "=1.6.0" }
|
|
|
|
# Prevent `ahash` from pulling in `getrandom` by disabling default features.
|
|
# Modules use `getrandom02` and we need to prevent an incompatible version
|
|
# from appearing in module dependency graphs.
|
|
ahash = { version = "0.8", default-features = false, features = ["std"] }
|
|
anyhow = "1.0.68"
|
|
anymap = "0.12"
|
|
arrayvec = "0.7.2"
|
|
async-stream = "0.3.6"
|
|
async-trait = "0.1.68"
|
|
axum = { version = "0.7", features = ["tracing"] }
|
|
axum-extra = { version = "0.9", features = ["typed-header"] }
|
|
backtrace = "0.3.66"
|
|
base64 = "0.21.2"
|
|
bigdecimal = "0.4.7"
|
|
bitflags = "2.3.3"
|
|
blake3 = "1.5.1"
|
|
brotli = "3.5"
|
|
byte-unit = "4.0.18"
|
|
bytemuck = { version = "1.16.2", features = ["must_cast"] }
|
|
bytes = "1.10.1"
|
|
bytestring = { version = "1.2.0", features = ["serde"] }
|
|
cargo_metadata = "0.17.0"
|
|
chrono = { version = "0.4.24", default-features = false }
|
|
clap = { version = "4.2.4", features = ["derive", "wrap_help"] }
|
|
clap-markdown = "0.1.4"
|
|
colored = "2.0.0"
|
|
console = { version = "0.15.6" }
|
|
convert_case = "0.6.0"
|
|
crc32c = "0.6.4"
|
|
criterion = { version = "0.5.1", features = ["async", "async_tokio", "html_reports"] }
|
|
crossbeam-channel = "0.5"
|
|
crossbeam-queue = "0.3.12"
|
|
cursive = { version = "0.20", default-features = false, features = ["crossterm-backend"] }
|
|
decorum = { version = "0.3.1", default-features = false, features = ["std"] }
|
|
derive_more = "0.99"
|
|
dialoguer = { version = "0.11", default-features = false }
|
|
dirs = "5.0.1"
|
|
duct = "0.13.5"
|
|
either = "1.9"
|
|
email_address = "0.2.4"
|
|
enum-as-inner = "0.6"
|
|
enum-map = "2.6.3"
|
|
env_logger = "0.10"
|
|
ethnum = { version = "1.5.0", features = ["serde"] }
|
|
flate2 = "1.0.24"
|
|
foldhash = "0.1.4"
|
|
fs-err = "2.9.0"
|
|
fs_extra = "1.3.0"
|
|
fs2 = "0.4.3"
|
|
futures = "0.3"
|
|
futures-channel = "0.3"
|
|
futures-util = "0.3"
|
|
getrandom02 = { package = "getrandom", version = "0.2" }
|
|
glob = "0.3.1"
|
|
hashbrown = { version = "0.15", default-features = false, features = ["equivalent", "inline-more"] }
|
|
headers = "0.4"
|
|
heck = "0.4"
|
|
hex = "0.4.3"
|
|
home = "0.5"
|
|
hostname = "^0.3"
|
|
http = "1.0"
|
|
humantime = "2.1.0"
|
|
hyper = "1.0"
|
|
hyper-util = { version = "0.1", features = ["tokio"] }
|
|
imara-diff = "0.1.3"
|
|
indexmap = "2.0.0"
|
|
indicatif = "0.17"
|
|
insta = { version = "1.21.0", features = ["toml", "filters"] }
|
|
is-terminal = "0.4"
|
|
itertools = "0.12"
|
|
itoa = "1"
|
|
jsonwebtoken = { package = "spacetimedb-jsonwebtoken", version = "9.3.0" }
|
|
junction = "1"
|
|
jwks = { package = "spacetimedb-jwks", version = "0.1.3" }
|
|
lazy_static = "1.4.0"
|
|
log = "0.4.17"
|
|
memchr = "2"
|
|
mimalloc = "0.1.39"
|
|
nohash-hasher = "0.2"
|
|
nix = "0.30"
|
|
once_cell = "1.16"
|
|
parking_lot = { version = "0.12.1", features = ["send_guard", "arc_lock"] }
|
|
parse-size = "1.1.0"
|
|
paste = "1.0"
|
|
percent-encoding = "2.3"
|
|
petgraph = { version = "0.6.5", default-features = false }
|
|
pin-project-lite = "0.2.9"
|
|
pgwire = { version = "0.32", features = ["server-api"] }
|
|
postgres-types = "0.2.5"
|
|
pretty_assertions = { version = "1.4", features = ["unstable"] }
|
|
proc-macro2 = "1.0"
|
|
prometheus = "0.13.0"
|
|
proptest = "1.4"
|
|
proptest-derive = "0.5"
|
|
quick-junit = { version = "0.3.2" }
|
|
quote = "1.0.8"
|
|
rand08 = { package = "rand", version = "0.8" }
|
|
rand = "0.9"
|
|
rayon = "1.8"
|
|
rayon-core = "1.11.0"
|
|
regex = "1"
|
|
reqwest = { version = "0.12", features = ["stream", "json"] }
|
|
rolldown = { git = "https://github.com/rolldown/rolldown.git", tag = "v1.0.0-beta.42" }
|
|
rolldown_utils = { git = "https://github.com/rolldown/rolldown.git", tag = "v1.0.0-beta.42" }
|
|
ron = "0.8"
|
|
rusqlite = { version = "0.29.0", features = ["bundled", "column_decltype"] }
|
|
rust_decimal = { version = "1.29.1", features = ["db-tokio-postgres"] }
|
|
rustc-demangle = "0.1.21"
|
|
rustc-hash = "2"
|
|
rustyline = { version = "12.0.0", features = [] }
|
|
scoped-tls = "1.0.1"
|
|
scopeguard = "1.1.0"
|
|
second-stack = "0.3"
|
|
self-replace = "1.5"
|
|
semver = "1"
|
|
serde = { version = "1.0.136", features = ["derive"] }
|
|
serde_json = { version = "1.0.128", features = ["raw_value", "arbitrary_precision"] }
|
|
serde_path_to_error = "0.1.9"
|
|
serde_with = { version = "3.3.0", features = ["base64", "hex"] }
|
|
serial_test = "2.0.0"
|
|
sha1 = "0.10.1"
|
|
sha3 = "0.10.0"
|
|
similar = "2.3"
|
|
slab = "0.4.7"
|
|
sled = "0.34.7"
|
|
smallvec = { version = "1.11", features = ["union", "const_generics"] }
|
|
socket2 = "0.5"
|
|
sqllogictest = "0.17"
|
|
sqllogictest-engines = "0.17"
|
|
sqlparser = "0.38.0"
|
|
strum = { version = "0.25.0", features = ["derive"] }
|
|
syn = { version = "2", features = ["full", "extra-traits"] }
|
|
syntect = { version = "5.0.0", default-features = false, features = ["default-fancy"] }
|
|
tabled = "0.14.0"
|
|
tar = "0.4"
|
|
tempdir = "0.3.7"
|
|
tempfile = "3.20"
|
|
termcolor = "1.2.0"
|
|
thin-vec = "0.2.13"
|
|
thiserror = "1.0.37"
|
|
tokio = { version = "1.37", features = ["full"] }
|
|
tokio_metrics = { version = "0.4.0" }
|
|
tokio-postgres = { version = "0.7.8", features = ["with-chrono-0_4"] }
|
|
tokio-stream = "0.1.17"
|
|
tokio-tungstenite = { version = "0.27.0", features = ["native-tls", "url"] }
|
|
tokio-util = { version = "0.7.4", features = ["time"] }
|
|
toml = "0.8"
|
|
toml_edit = "0.22.22"
|
|
tower-http = { version = "0.5", features = ["cors"] }
|
|
tower-layer = "0.3"
|
|
tower-service = "0.3"
|
|
tracing = "0.1.37"
|
|
tracing-appender = "0.2.2"
|
|
tracing-core = "0.1.31"
|
|
tracing-flame = "0.2.0"
|
|
tracing-log = "0.1.3"
|
|
tracing-subscriber = { version = "0.3.17", features = ["env-filter"] }
|
|
trybuild = "1"
|
|
typed-arena = "2.0"
|
|
unicode-ident = "1.0.12"
|
|
unicode-normalization = "0.1.23"
|
|
url = "2.3.1"
|
|
urlencoding = "2.1.2"
|
|
uuid = { version = "1.18.1", features = ["v4"] }
|
|
v8 = "140.2"
|
|
walkdir = "2.2.5"
|
|
wasmbin = "0.6"
|
|
webbrowser = "1.0.2"
|
|
windows-sys = "0.59"
|
|
xdg = "2.5"
|
|
tikv-jemallocator = { version = "0.6.0", features = ["profiling", "stats"] }
|
|
tikv-jemalloc-ctl = { version = "0.6.0", features = ["stats"] }
|
|
jemalloc_pprof = { version = "0.8", features = ["symbolize", "flamegraph"] }
|
|
zstd-framed = { version = "0.1.1", features = ["tokio"] }
|
|
|
|
# Vendor the openssl we rely on, rather than depend on a
|
|
# potentially very old system version.
|
|
openssl = { version = "0.10", features = ["vendored"] }
|
|
|
|
[workspace.dependencies.wasmtime]
|
|
version = "25"
|
|
default-features = false
|
|
features = [
|
|
"addr2line",
|
|
"async",
|
|
"cache",
|
|
"cranelift",
|
|
"demangle",
|
|
"parallel-compilation",
|
|
"runtime",
|
|
"std",
|
|
]
|
|
|
|
[workspace.dependencies.tracing-tracy]
|
|
version = "0.10.4"
|
|
# We use the "ondemand" feature to allow connecting after the start,
|
|
# and reconnecting, from the tracy client to the database.
|
|
# TODO(George): Need to be able to remove "broadcast" in some build configurations.
|
|
features = [
|
|
"enable",
|
|
"system-tracing",
|
|
"context-switch-tracing",
|
|
"sampling",
|
|
"code-transfer",
|
|
"broadcast",
|
|
"ondemand",
|
|
]
|
|
|
|
[workspace.lints.rust]
|
|
unexpected_cfgs = { level = "warn", check-cfg = ['cfg(tokio_unstable)'] }
|
|
|
|
[workspace.lints.clippy]
|
|
# FIXME: we should work on this lint incrementally
|
|
result_large_err = "allow"
|
|
|
|
[patch.crates-io]
|
|
# Note(bfops): We require this override because temporal_rs (pulled via core->v8->ry_temporal_capi)
|
|
# depends on timezone_provider using a `~` which allows a roll-forward to an incompatible version.
|
|
# Maybe this will no longer be an issue if we bump v8 to a version that depends on a post-0.1
|
|
# version of temporal_rs, but I'm not holding my breath.
|
|
timezone_provider = { git = "https://github.com/boa-dev/temporal", tag = "v0.0.11" }
|
|
temporal_rs = { git = "https://github.com/boa-dev/temporal", tag = "v0.0.11" }
|