Files
SpacetimeDB/crates/standalone/Cargo.toml
Mazdak Farrokhzad abc3a1c032 V8: Enable as unstable, add syscalls, flesh out call_reducer, etc. (#3276)
# Description of Changes

Update:

This PR did all of the below but was split. Now it just does:

1. Exposes V8/JS modules via the `unstable` feature flag on the host. To
publish a JS module, `--js-path path/to/module.js`

This PR:

1. Exposes V8/JS modules via the `unstable` feature flag on the host. To
publish a JS module, `--js-path path/to/module.js` needs to be used.
2. Bumps V8 to 140.2.
3. Shares more logic with WASM and makes some minor refactorings to
energy/budget logic.
4. Moves logic from `WasmInstanceEnv` to `InstanceEnv` and friends.
5. Makes JS modules actually work in terms of `create_instance`,
`make_actor`,
6. Fleshes out `call_reducer` with timeouts and long-running logs added
as well.
7. Adds all the syscalls with associated documentation as well.

# API and ABI breaking changes

None

# Expected complexity level and risk

2? It's only available on unstable and mostly touches V8 stuff.

# Testing

Follow up PRs will add unit tests for parts.
We'll also need to add integration tests for whole modules.
2025-10-06 20:03:36 +00:00

68 lines
2.1 KiB
TOML

[package]
name = "spacetimedb-standalone"
version.workspace = true
edition.workspace = true
license-file = "LICENSE"
description = "An executable for running a single SpacetimeDB standalone instance"
rust-version.workspace = true
[[bin]]
name = "spacetimedb-standalone" # The name of the target.
path = "src/main.rs" # The source file of the target.
test = true # Is tested by default.
bench = false # Benching off, because of https://bheisler.github.io/criterion.rs/book/faq.html#cargo-bench-gives-unrecognized-option-errors-for-valid-command-line-options
doc = false # Is documented by default.
proc-macro = false # Set to `true` for a proc-macro library.
harness = true # Use libtest harness.
required-features = [] # Features required to build this target (N/A for lib)
[features]
# Perfmaps for profiling modules
perfmap = ["spacetimedb-core/perfmap"]
unstable = ["spacetimedb-client-api/unstable"]
[dependencies]
spacetimedb-client-api-messages.workspace = true
spacetimedb-client-api.workspace = true
spacetimedb-core.workspace = true
spacetimedb-datastore.workspace = true
spacetimedb-lib.workspace = true
spacetimedb-paths.workspace = true
spacetimedb-pg.workspace = true
spacetimedb-table.workspace = true
spacetimedb-schema.workspace = true
anyhow.workspace = true
async-trait.workspace = true
axum.workspace = true
clap = { workspace = true, features = ["derive", "string"] }
dirs.workspace = true
futures.workspace = true
hostname.workspace = true
http.workspace = true
log.workspace = true
openssl.workspace = true
parse-size.workspace = true
prometheus.workspace = true
scopeguard.workspace = true
serde.workspace = true
serde_json.workspace = true
sled.workspace = true
socket2.workspace = true
thiserror.workspace = true
tokio.workspace = true
tower-http.workspace = true
toml.workspace = true
tracing = { workspace = true, features = ["release_max_level_debug"] }
[target.'cfg(not(target_env = "msvc"))'.dependencies]
tikv-jemallocator = {workspace = true}
tikv-jemalloc-ctl = {workspace = true}
[dev-dependencies]
once_cell.workspace = true
tempfile.workspace = true
[lints]
workspace = true