Files
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
..
2025-08-22 19:36:47 +00:00
2024-12-31 17:05:13 -05:00
2025-10-02 19:04:42 +00:00
2025-10-02 13:53:16 +00:00

Migration note

We are in the process of moving from the spacetimedb-docs repo to the docs subdirectory of SpacetimeDB. Any new changes should be made there. The spacetimedb-docs repo will only be updated on release. Apologies in advance for any sharp edges while the migration is in progress.

SpacetimeDB Documentation

This repository contains the markdown files which are used to display documentation on our website.

Making Edits

To make changes to our docs, you can open a pull request in this repository. You can typically edit the files directly using the GitHub web interface, but you can also clone our repository and make your edits locally. To do this you can follow these instructions:

  1. Fork our repository
  2. Clone your fork:
git clone ssh://git@github.com/<username>/SpacetimeDB
cd SpacetimeDB/docs
  1. Make your edits to the docs that you want to make + test them locally
  2. Commit your changes:
git add .
git commit -m "A specific description of the changes I made and why"
  1. Push your changes to your fork as a branch
git checkout -b a-branch-name-that-describes-my-change
git push -u origin a-branch-name-that-describes-my-change
  1. Go to our GitHub and open a PR that references your branch in your fork on your GitHub

NOTE! If you make a change to nav.ts you will have to run npm run build to generate a new docs/nav.js file.

CLI Reference Section

  1. Run cargo run --features markdown-docs -p spacetimedb-cli > docs/docs/cli-reference.md
  2. Run pnpm format

We have a CI job which validates internal links. You can run it locally with npm run check-links. This will print any internal links (i.e. links to other docs pages) whose targets do not exist, including fragment links (i.e. #-ey links to anchors).

License

This documentation repository is licensed under Apache 2.0. See LICENSE.txt for more details.