{"repo":"clockworklabs/SpacetimeDB","free":true,"listed":false,"github":"https://github.com/clockworklabs/SpacetimeDB","clone":"git clone https://github.com/clockworklabs/SpacetimeDB.git","description":"Development at the speed of light","language":"Rust","stars":25007,"topics":["database","dataoriented","game-development","mmorpg-server","relational","relational-database","web-development","web-framework"],"license":null,"category":"database_backend","readme_excerpt":"<p align=\"center\">\n    <a href=\"https://spacetimedb.com#gh-dark-mode-only\" target=\"_blank\">\n\t<img width=\"320\" src=\"./images/dark/logo.svg\" alt=\"SpacetimeDB Logo\">\n    </a>\n    <a href=\"https://spacetimedb.com#gh-light-mode-only\" target=\"_blank\">\n\t<img width=\"320\" src=\"./images/light/logo.svg\" alt=\"SpacetimeDB Logo\">\n    </a>\n</p>\n<p align=\"center\">\n    <a href=\"https://spacetimedb.com#gh-dark-mode-only\" target=\"_blank\">\n        <img width=\"250\" src=\"./images/dark/logo-text.svg\" alt=\"SpacetimeDB\">\n    </a>\n    <a href=\"https://spacetimedb.com#gh-light-mode-only\" target=\"_blank\">\n        <img width=\"250\" src=\"./images/light/logo-text.svg\" alt=\"SpacetimeDB\">\n    </a>\n    <h3 align=\"center\">\n        Development at the speed of light.\n    </h3>\n</p>\n<p align=\"center\">\n    <a href=\"https://github.com/clockworklabs/spacetimedb\"><img src=\"https://img.shields.io/github/v/release/clockworklabs/spacetimedb?color=%23ff00a0&include_prereleases&label=version&sort=semver&style=flat-square\"></a>\n    &nbsp;\n    <a href=\"https://github.com/clockworklabs/spacetimedb\"><img src=\"https://img.shields.io/badge/built_with-Rust-dca282.svg?style=flat-square\"></a>\n    &nbsp;\n\t<a href=\"https://github.com/clockworklabs/spacetimedb/actions\"><img src=\"https://img.shields.io/github/actions/workflow/status/clockworklabs/spacetimedb/ci.yml?style=flat-square&branch=master\"></a>\n    &nbsp;\n    <a href=\"https://status.spacetimedb.com\"><img src=\"https://img.shields.io/uptimerobot/ratio/7/m784409192-e472ca350bb615372ededed7?label=cloud%20uptime&style=flat-square\"></a>\n    &nbsp;\n    <a href=\"https://hub.docker.com/r/clockworklabs/spacetimedb\"><img src=\"https://img.shields.io/docker/pulls/clockworklabs/spacetimedb?style=flat-square\"></a>\n    &nbsp;\n    <a href=\"https://github.com/clockworklabs/spacetimedb/blob/master/LICENSE.txt\"><img src=\"https://img.shields.io/badge/license-BSL_1.1-00bfff.svg?style=flat-square\"></a>\n</p>\n<p align=\"center\">\n    <a href=\"https://crates.io/crates/spacetimedb\"><img src=\"https://img.shields.io/crates/d/spacetimedb?color=e45928&label=Rust%20Crate&style=flat-square\"></a>\n    &nbsp;\n    <a href=\"https://www.nuget.org/packages/SpacetimeDB.Runtime\"><img src=\"https://img.shields.io/nuget/dt/spacetimedb.runtime?color=0b6cff&label=NuGet%20Package&style=flat-square\"></a>\n    &nbsp;\n    <a href=\"https://www.npmjs.com/package/spacetimedb\"><img src=\"https://img.shields.io/npm/dm/spacetimedb?color=cb0000&label=npm&style=flat-square\"></a>\n</p>\n<p align=\"center\">\n    <a href=\"https://discord.gg/spacetimedb\"><img src=\"https://img.shields.io/discord/1037340874172014652?label=discord&style=flat-square&color=5a66f6\"></a>\n    &nbsp;\n    <a href=\"https://twitter.com/spacetime_db\"><img src=\"https://img.shields.io/badge/twitter-Follow_us-1d9bf0.svg?style=flat-square\"></a>\n    &nbsp;\n    <a href=\"https://clockworklabs.io/join\"><img src=\"https://img.shields.io/badge/careers-Join_us-86f7b7.svg?style=flat-square\"></a>\n    &nbsp;\n    <a href=\"https://www.linkedin.com/company/clockworklabs/\"><img src=\"https://img.shields.io/badge/linkedin-Connect_with_us-0a66c2.svg?style=flat-square\"></a>\n</p>\n\n<p align=\"center\">\n    <a href=\"https://discord.gg/spacetimedb\"><img height=\"25\" src=\"./images/social/discord.svg\" alt=\"Discord\"></a>\n    &nbsp;\n    <a href=\"https://twitter.com/spacetime_db\"><img height=\"25\" src=\"./images/social/twitter.svg\" alt=\"Twitter\"></a>\n    &nbsp;\n    <a href=\"https://github.com/clockworklabs/spacetimedb\"><img height=\"25\" src=\"./images/social/github.svg\" alt=\"GitHub\"></a>\n    &nbsp;\n    <a href=\"https://twitch.tv/SpacetimeDB\"><img height=\"25\" src=\"./images/social/twitch.svg\" alt=\"Twitch\"></a>\n    &nbsp;\n    <a href=\"https://youtube.com/@SpacetimeDB\"><img height=\"25\" src=\"./images/social/youtube.svg\" alt=\"YouTube\"></a>\n    &nbsp;\n    <a href=\"https://www.linkedin.com/company/clockwork-labs/\"><img height=\"25\" src=\"./images/social/linkedin.svg\" alt=\"LinkedIn\"></a>\n    &nbsp;\n    <a href=\"https://stackoverflow.com/questions/tagged/spacetimedb\"><img height=\"25\" src=\"./images/social/stackoverflow.svg\" alt=\"StackOverflow\"></a>\n</p>\n\n<br>\n\n## What is SpacetimeDB?\n\nSpacetimeDB is a relational database that is also a server. You upload your application logic directly into the database, and clients connect to it without any server in between.\n\nWrite your schema and business logic as a **module** in [Rust](https://spacetimedb.com/docs/quickstarts/rust), [C#](https://spacetimedb.com/docs/quickstarts/c-sharp), [TypeScript](https://spacetimedb.com/docs/quickstarts/typescript), or [C++](https://spacetimedb.com/docs/quickstarts/c-plus-plus). SpacetimeDB compiles it, runs it inside the database, and automatically synchronizes state to connected clients in real-time.\n\nInstead of deploying a web or game server that sits in between your clients and your database, your clients connect directly to the database and execute your application logic in your module. You can write all of your permission and authorization logic right inside your module just as you would in a normal server.\n\nThis means that you can write your entire application in a single language and deploy it as a single binary. No more separate webserver, no more containers, no more Kubernetes, no more VMs, no more DevOps, no more caching later. Zero infrastructure to manage.\n\n<figure>\n    <img src=\"./images/basic-architecture-diagram.png\" alt=\"SpacetimeDB Architecture\" style=\"width:100%\">\n    <figcaption align=\"center\">\n        <p align=\"center\"><b>SpacetimeDB application architecture</b><br /><sup><sub>(elements in white are provided by SpacetimeDB)</sub></sup></p>\n    </figcaption>\n</figure>\n\nSpacetimeDB is optimized for maximum speed and minimum latency. SpacetimeDB provides all the ACID guarantees of a traditional RDBMS, with all the speed of an optimized web server. All application state is held in memory for fast access, while a commit log on disk provides durability and crash recovery. The entire backend of our MMORPG [BitCraft Online](https://bitcraftonline.com) runs as a single SpacetimeDB module: chat, items, terrain, player positions, everything, synchronized to thousands of players in real-time.\n\n## Quick Start\n\n### 1. Install\n\n```bash\n# macOS / Linux\ncurl -sSf https://install.spacetimedb.com | sh\n\n# Windows (PowerShell)\niwr https://windows.spacetimedb.com -useb | iex\n```\n\n### 2. Log in\n\n```bash\nspacetime login\n```\n\nThis opens a browser to authenticate with GitHub. Your identity is linked to your account so you can publish databases.\n\n### 3. Start developing\n\n```bash\nspacetime dev --template chat-react-ts\n```\n\nThat is it. This creates a project from a template, publishes it to [Maincloud](https://spacetimedb.com/docs/how-to/deploy/maincloud), and watches for file changes, automatically rebuilding and republishing on save. See [pricing](https://spacetimedb.com/pricing) for details.\n\n## How It Works\n\nSpacetimeDB modules define **tables** (your data) and **reducers** (your logic). Clients connect, call reducers, and subscribe to tables. When data changes, SpacetimeDB pushes updates to subscribed clients automatically.\n\n```rust\n// Define a table\n#[spacetimedb::table(accessor = messages, public)]\npub struct Message {\n    #[primary_key]\n    #[auto_inc]\n    id: u64,\n    sender: Identity,\n    text: String,\n}\n\n// Define a reducer (your API endpoint)\n#[spacetimedb::reducer]\npub fn send_message(ctx: &ReducerContext, text: String) {\n    ctx.db.messages().insert(Message {\n        id: 0,\n        sender: ctx.sender,\n        text,\n    });\n}\n```\n\nOn the client side, subscribe and get live updates:\n\n```typescript\nconst [messages] = useTable(tables.message);\n// messages updates automatically when the server state changes.\n// No polling. No refetching.\n```\n\n## Language Support\n\n### Server Modules\n\nWrite your database logic in any of these languages:\n\n| Language | Quickstart |\n|----------|-----------|\n| **Rust** | [Get started](https://spacetimedb.com/docs/quickstarts/rust) |\n| **C#** | [Get started](https://spacetimedb.com/docs/quickstarts/c-sharp) |\n| **TypeScript** | [Get started](https://spacetimedb.com/docs/quickstarts/typescript) |\n| **C++** | [Get started](https://spacetimedb.com/docs/quickstarts/c-plus-plus) |\n\n### Client SDKs\n\nConnect from any of these platforms:\n\n| SDK | Quickstart |\n|-----|-----------|\n| **TypeScript** (React, Next.js, Vue, Svelte, Angular, Node.js, Bun, Deno) | [Get started](https://spacetimedb.com/docs/quickstarts/react) |\n| **Rust** | [Get started](https://spacetimedb.com/docs/quickstarts/rust) |\n| **C#** (standalone and Unity) | [Get started](https://spacetimedb.com/docs/quickstarts/c-sharp) |\n| **C++** (Unreal Engine) | [Get started](https://spacetimedb.com/docs/quickstarts/c-plus-plus) |\n\n## Running with Docker\n\n```bash\ndocker run --rm --pull always -p 3000:3000 clockworklabs/spacetime start\n```\n\n## Building from Source\n\nIf you need features from `master` that have not been released yet:\n\n```bash\n# Prerequisites: Rust toolchain with wasm32-unknown-unknown target\ncurl https://sh.rustup.rs -sSf | sh\n\ngit clone https://github.com/clockworklabs/SpacetimeDB\ncd SpacetimeDB\ncargo build --locked --release -p spacetimedb-standalone -p spacetimedb-update -p spacetimedb-cli\n```\n\nThen install the binaries:\n\n<details>\n<summary>macOS / Linux</summary>\n\n```bash\nmkdir -p ~/.local/bin\nSTDB_VERSION=\"$(./target/release/spacetimedb-cli --version | sed -n 's/.*spacetimedb tool version \\([0-9.]*\\);.*/\\1/p')\"\nmkdir -p ~/.local/share/spacetime/bin/$STDB_VERSION\n\ncp target/release/spacetimedb-update ~/.local/bin/spacetime\ncp target/release/spacetimedb-cli ~/.local/share/spacetime/bin/$STDB_VERSION\ncp target/release/spacetimedb-standalone ~/.local/share/spacetime/bin/$STDB_VERSION\n\n# Add to your shell config if not already present:\nexport PATH=\"$HOME/.local/bin:$PATH\"\n\n# Set the active version:\nspacetime version use $STDB_VERSION\n```\n</details>\n\n<details>\n<summary>Windows (PowerShell)</summary>\n\n```powershell\n$stdbDir = \"$HOME\\AppData\\Local\\SpacetimeDB\"\n$stdbVersion = & \".\\target\\release\\space","default_branch":"master","files":6960,"tree":[".agents/plugins/marketplace.json",".cargo/config.toml",".claude-plugin/README.md",".claude-plugin/marketplace.json",".dockerignore",".envrc",".gitattributes",".github/CODEOWNERS",".github/Dockerfile",".github/GREMLINS.md",".github/actions/keynote-bench-setup/action.yml",".github/actions/setup-pnpm/action.yml",".github/pull_request_template.md",".github/workflows/attach-artifacts.yml",".github/workflows/benchmarks.yml",".github/workflows/check-merge-labels.yml",".github/workflows/check-pr-base.yml",".github/workflows/ci.yml",".github/workflows/cla-gate.yml",".github/workflows/discord-posts.yml",".github/workflows/docs-publish.yaml",".github/workflows/docs-update-llms.yaml",".github/workflows/internal-tests.yml",".github/workflows/llm-benchmark-periodic.yml",".github/workflows/llm-benchmark-validate-goldens.yml",".github/workflows/package.yml",".github/workflows/pr_approval_check.yml",".github/workflows/release.yml",".github/workflows/retry-cla-assistant.yml",".github/workflows/rust_matcher.json",".github/workflows/tag-release.yml",".gitignore",".npmrc",".prettierignore",".prettierrc",".rustfmt.toml","Cargo.lock","Cargo.toml","Dockerfile","LICENSE.txt","README.md","TESTING.md","clippy.toml","codex-plugin/.agents/plugins/marketplace.json","codex-plugin/DEVELOP.md","codex-plugin/LICENSE","codex-plugin/README.md","codex-plugin/plugins/spacetimedb/.codex-plugin/plugin.json","codex-plugin/plugins/spacetimedb/.mcp.json","codex-plugin/plugins/spacetimedb/LICENSE","codex-plugin/plugins/spacetimedb/assets/icon.png","codex-plugin/plugins/spacetimedb/assets/logo.png","codex-plugin/plugins/spacetimedb/skills/cli/SKILL.md","codex-plugin/plugins/spacetimedb/skills/concepts/SKILL.md","codex-plugin/plugins/spacetimedb/skills/cpp-server/SKILL.md","codex-plugin/plugins/spacetimedb/skills/csharp-client/SKILL.md","codex-plugin/plugins/spacetimedb/skills/csharp-server/SKILL.md","codex-plugin/plugins/spacetimedb/skills/mcp/SKILL.md","codex-plugin/plugins/spacetimedb/skills/rust-server/SKILL.md","codex-plugin/plugins/spacetimedb/skills/typescript-client/SKILL.md","codex-plugin/plugins/spacetimedb/skills/typescript-server/SKILL.md","codex-plugin/plugins/spacetimedb/skills/unity/SKILL.md","codex-plugin/plugins/spacetimedb/skills/unreal/SKILL.md","codex-plugin/scripts/.npmrc","codex-plugin/scripts/check-skills-sync.ts","codex-plugin/scripts/package.json","codex-plugin/scripts/tsconfig.json","crates/auth/Cargo.toml","crates/auth/LICENSE","crates/auth/src/identity.rs","crates/auth/src/lib.rs","crates/bench/.gitignore","crates/bench/Cargo.toml","crates/bench/Dockerfile","crates/bench/LICENSE","crates/bench/README.md","crates/bench/benches/callgrind.rs","crates/bench/benches/delete_table.rs","crates/bench/benches/generic.rs","crates/bench/benches/index.rs","crates/bench/benches/special.rs","crates/bench/benches/subscription.rs","crates/bench/callgrind-docker.sh","crates/bench/clippy.toml","crates/bench/flamegraph.sh","crates/bench/hyper_cmp.py","crates/bench/instruments.sh","crates/bench/src/bin/summarize.rs","crates/bench/src/database.rs","crates/bench/src/lib.rs","crates/bench/src/schemas.rs","crates/bench/src/spacetime_module.rs","crates/bench/src/spacetime_raw.rs","crates/bench/src/sqlite.rs","crates/bindings-cpp/.gitignore","crates/bindings-cpp/ARCHITECTURE.md","crates/bindings-cpp/CMakeLists.txt","crates/bindings-cpp/DEVELOP.md","crates/bindings-cpp/LICENSE","crates/bindings-cpp/QUICKSTART.md","crates/bindings-cpp/README.md","crates/bindings-cpp/REFERENCE.md","crates/bindings-cpp/include/spacetimedb.h","crates/bindings-cpp/include/spacetimedb/abi/FFI.h","crates/bindings-cpp/include/spacetimedb/abi/abi.h","crates/bindings-cpp/include/spacetimedb/abi/opaque_types.h","crates/bindings-cpp/include/spacetimedb/auth_ctx.h","crates/bindings-cpp/include/spacetimedb/bsatn/DEVELOP.md","crates/bindings-cpp/include/spacetimedb/bsatn/README.md","crates/bindings-cpp/include/spacetimedb/bsatn/algebraic_type.h","crates/bindings-cpp/include/spacetimedb/bsatn/bsatn.h","crates/bindings-cpp/include/spacetimedb/bsatn/primitive_traits.h","crates/bindings-cpp/include/spacetimedb/bsatn/reader.h","crates/bindings-cpp/include/spacetimedb/bsatn/result.h","crates/bindings-cpp/include/spacetimedb/bsatn/schedule_at.h","crates/bindings-cpp/include/spacetimedb/bsatn/schedule_at_impl.h","crates/bindings-cpp/include/spacetimedb/bsatn/serialization.h","crates/bindings-cpp/include/spacetimedb/bsatn/size_calculator.h","crates/bindings-cpp/include/spacetimedb/bsatn/sum_type.h","crates/bindings-cpp/include/spacetimedb/bsatn/time_duration.h","crates/bindings-cpp/include/spacetimedb/bsatn/timestamp.h","crates/bindings-cpp/include/spacetimedb/bsatn/traits.h","crates/bindings-cpp/include/spacetimedb/bsatn/type_extensions.h","crates/bindings-cpp/include/spacetimedb/bsatn/types.h","crates/bindings-cpp/include/spacetimedb/bsatn/types_impl.h","crates/bindings-cpp/include/spacetimedb/bsatn/uuid.h","crates/bindings-cpp/include/spacetimedb/bsatn/writer.h","crates/bindings-cpp/include/spacetimedb/client_visibility_filter.h","crates/bindings-cpp/include/spacetimedb/database.h","crates/bindings-cpp/include/spacetimedb/enum_macro.h","crates/bindings-cpp/include/spacetimedb/error_handling.h","crates/bindings-cpp/include/spacetimedb/handler_context.h","crates/bindings-cpp/include/spacetimedb/http.h","crates/bindings-cpp/include/spacetimedb/http_client_impl.h","crates/bindings-cpp/include/spacetimedb/http_convert.h","crates/bindings-cpp/include/spacetimedb/http_handler_macros.h","crates/bindings-cpp/include/spacetimedb/http_wire.h","crates/bindings-cpp/include/spacetimedb/index_iterator.h","crates/bindings-cpp/include/spacetimedb/internal/Module.h","crates/bindings-cpp/include/spacetimedb/internal/Module_impl.h","crates/bindings-cpp/include/spacetimedb/internal/README.md","crates/bindings-cpp/include/spacetimedb/internal/autogen/AlgebraicType.g.h","crates/bindings-cpp/include/spacetimedb/internal/autogen/CaseConversionPolicy.g.h","crates/bindings-cpp/include/spacetimedb/internal/autogen/ExplicitNameEntry.g.h","crates/bindings-cpp/include/spacetimedb/internal/autogen/ExplicitNames.g.h","crates/bindings-cpp/include/spacetimedb/internal/autogen/FunctionVisibility.g.h","crates/bindings-cpp/include/spacetimedb/internal/autogen/HttpMethod.g.h","crates/bindings-cpp/include/spacetimedb/internal/autogen/IndexType.g.h","crates/bindings-cpp/include/spacetimedb/internal/autogen/Lifecycle.g.h","crates/bindings-cpp/include/spacetimedb/internal/autogen/MethodOrAny.g.h","crates/bindings-cpp/include/spacetimedb/internal/autogen/MiscModuleExport.g.h","crates/bindings-cpp/include/spacetimedb/internal/autogen/NameMapping.g.h","crates/bindings-cpp/include/spacetimedb/internal/autogen/ProductType.g.h","crates/bindings-cpp/include/spacetimedb/internal/autogen/ProductTypeElement.g.h","crates/bindings-cpp/include/spacetimedb/internal/autogen/RawColumnDefV8.g.h","crates/bindings-cpp/include/spacetimedb/internal/autogen/RawColumnDefaultValueV10.g.h","crates/bindings-cpp/include/spacetimedb/internal/autogen/RawColumnDefaultValueV9.g.h","crates/bindings-cpp/include/spacetimedb/internal/autogen/RawConstraintDataV9.g.h","crates/bindings-cpp/include/spacetimedb/internal/autogen/RawConstraintDefV10.g.h","crates/bindings-cpp/include/spacetimedb/internal/autogen/RawConstraintDefV8.g.h","crates/bindings-cpp/include/spacetimedb/internal/autogen/RawConstraintDefV9.g.h","crates/bindings-cpp/include/spacetimedb/internal/autogen/RawHttpHandlerDefV10.g.h","crates/bindings-cpp/include/spacetimedb/internal/autogen/RawHttpRouteDefV10.g.h","crates/bindings-cpp/include/spacetimedb/internal/autogen/RawIndexAlgorithm.g.h","crates/bindings-cpp/include/spacetimedb/internal/autogen/RawIndexDefV10.g.h","crates/bindings-cpp/include/spacetimedb/internal/autogen/RawIndexDefV8.g.h","crates/bindings-cpp/include/spacetimedb/internal/autogen/RawIndexDefV9.g.h","crates/bindings-cpp/include/spacetimedb/internal/autogen/RawLifeCycleReducerDefV10.g.h","crates/bindings-cpp/include/spacetimedb/internal/autogen/RawMiscModuleExportV9.g.h","crates/bindings-cpp/include/spacetimedb/internal/autogen/RawModuleDef.g.h","crates/bindings-cpp/include/spacetimedb/internal/autogen/RawModuleDefV10.g.h","crates/bindings-cpp/include/spacetimedb/internal/autogen/RawModuleDefV10Section.g.h","crates/bindings-cpp/include/spacetimedb/internal/autogen/RawModuleDefV8.g.h","crates/bindings-cpp/include/spacetimedb/internal/autogen/RawModuleDefV9.g.h","crates/bindings-cpp/include/spacetimedb/internal/autogen/RawProcedureDefV10.g.h","crates/bindings-cpp/include/spacetimedb/internal/autogen/RawProcedureDefV9.g.h","crates/bindings-cpp/include/spacetimedb/internal/autogen/RawReducerDefV10.g.h","crates/bindings-cpp/include/spacetimedb/internal/autogen/RawReducerDefV9.g.h","crates/bindings-cpp/include/spacetimedb/internal/autogen/RawRowLevelSecurityDefV9.g.h","crates/bindings-cpp/include/spacetimedb/internal/autogen/RawScheduleDefV10.g.h","crates/bindings-cpp/include/spacetimedb/internal/autogen/RawScheduleDefV9.g.h","crates/bindings-cpp/include/spacetimedb/internal/autogen/RawScopedTypeNameV10.g.h","crates/bindings-cpp/include/spacetimedb/internal/autogen/RawScopedTypeNameV9.g.h","crates/bindings-cpp/include/spacetimedb/internal/autogen/RawSequenceDefV10.g.h","crates/bindings-cpp/include/spacetimedb/internal/autogen/RawSequenceDefV8.g.h","crates/bindings-cpp/include/spacetimedb/internal/autogen/RawSequenceDefV9.g.h","crates/bindings-cpp/include/spacetimedb/internal/autogen/RawSubmoduleV10.g.h","crates/bindings-cpp/include/spacetimedb/internal/autogen/RawTableDefV10.g.h","crates/bindings-cpp/include/spacetimedb/internal/autogen/RawTableDefV8.g.h","crates/bindings-cpp/include/spacetimedb/internal/autogen/RawTableDefV9.g.h","crates/bindings-cpp/include/spacetimedb/internal/autogen/RawTypeDefV10.g.h","crates/bindings-cpp/include/spacetimedb/internal/autogen/RawTypeDefV9.g.h","crates/bindings-cpp/include/spacetimedb/internal/autogen/RawUniqueConstraintDataV9.g.h","crates/bindings-cpp/include/spacetimedb/internal/autogen/RawViewDefV10.g.h","crates/bindings-cpp/include/spacetimedb/internal/autogen/RawViewDefV9.g.h","crates/bindings-cpp/include/spacetimedb/internal/autogen/RawViewPrimaryKeyDefV10.g.h","crates/bindings-cpp/include/spacetimedb/internal/autogen/ReducerDef.g.h","crates/bindings-cpp/include/spacetimedb/internal/autogen/SumType.g.h","crates/bindings-cpp/include/spacetimedb/internal/autogen/SumTypeVariant.g.h","crates/bindings-cpp/include/spacetimedb/internal/autogen/TableAccess.g.h","crates/bindings-cpp/include/spacetimedb/internal/autogen/TableDesc.g.h","crates/bindings-cpp/include/spacetimedb/internal/autogen/TableType.g.h","crates/bindings-cpp/include/spacetimedb/internal/autogen/TypeAlias.g.h","crates/bindings-cpp/include/spacetimedb/internal/autogen/Typespace.g.h","crates/bindings-cpp/include/spacetimedb/internal/autogen_base.h","crates/bindings-cpp/include/spacetimedb/internal/bsatn_adapters.h","crates/bindings-cpp/include/spacetimedb/internal/buffer_pool.h","crates/bindings-cpp/include/spacetimedb/internal/debug.h","crates/bindings-cpp/include/spacetimedb/internal/field_registration.h","crates/bindings-cpp/include/spacetimedb/internal/forward_declarations.h","crates/bindings-cpp/include/spacetimedb/internal/module_type_registration.h","crates/bindings-cpp/include/spacetimedb/internal/runtime_registration.h","crates/bindings-cpp/include/spacetimedb/internal/template_utils.h","crates/bindings-cpp/include/spacetimedb/internal/tx_execution.h","crates/bindings-cpp/include/spacetimedb/internal/v10_builder.h","crates/bindings-cpp/include/spacetimedb/internal/v9_builder.h","crates/bindings-cpp/include/spacetimedb/jwt_claims.h","crates/bindings-cpp/include/spacetimedb/logger.h","crates/bindings-cpp/include/spacetimedb/macros.h","crates/bindings-cpp/include/spacetimedb/outcome.h","crates/bindings-cpp/include/spacetimedb/procedure_context.h","crates/bindings-cpp/include/spacetimedb/procedure_macros.h","crates/bindings-cpp/include/spacetimedb/query_builder.h","crates/bindings-cpp/include/spacetimedb/query_builder/expr.h","crates/bindings-cpp/include/spacetimedb/query_builder/join.h","crates/bindings-cpp/include/spacetimedb/query_builder/table.h","crates/bindings-cpp/include/spacetimedb/random.h","crates/bindings-cpp/include/spacetimedb/range_queries.h","crates/bindings-cpp/include/spacetimedb/readonly_database_context.h","crates/bindings-cpp/include/spacetimedb/readonly_field_accessors.h","crates/bindings-cpp/include/spacetimedb/readonly_table_accessor.h","crates/bindings-cpp/include/spacetimedb/reducer_context.h","crates/bindings-cpp/include/spacetimedb/reducer_error.h","crates/bindings-cpp/include/spacetimedb/reducer_macros.h","crates/bindings-cpp/include/spacetimedb/router.h","crates/bindings-cpp/include/spacetimedb/schedule_reducer.h","crates/bindings-cpp/include/spacetimedb/table.h","crates/bindings-cpp/include/spacetimedb/table_with_constraints.h","crates/bindings-cpp/include/spacetimedb/tx_context.h","crates/bindings-cpp/include/spacetimedb/version.h.in","crates/bindings-cpp/include/spacetimedb/view_context.h","crates/bindings-cpp/include/spacetimedb/view_macros.h","crates/bindings-cpp/src/abi/module_exports.cpp","crates/bindings-cpp/src/abi/wasi_shims.cpp","crates/bindings-cpp/src/internal/AlgebraicType.cpp","crates/bindings-cpp/src/internal/Module.cpp","crates/bindings-cpp/src/internal/module_type_registration.cpp","crates/bindings-cpp/src/internal/v10_builder.cpp","crates/bindings-cpp/src/internal/v9_builder.cpp","crates/bindings-cpp/tests/client-comparison/README.md","crates/bindings-cpp/tests/client-comparison/check_tables.py","crates/bindings-cpp/tests/client-comparison/run_client_comparison.sh","crates/bindings-cpp/tests/client-comparison/scripts/compare_clients.sh","crates/bindings-cpp/tests/client-comparison/scripts/compare_modules.sh","crates/bindings-cpp/tests/client-comparison/scripts/regenerate_cpp_client.sh","crates/bindings-cpp/tests/client-comparison/scripts/regenerate_rust_client.sh","crates/bindings-cpp/tests/compile/CMakeLists.module.txt","crates/bindings-cpp/tests/compile/README.md","crates/bindings-cpp/tests/compile/cases/http-handlers/error_http_handler_immutable_ctx.cpp","crates/bindings-cpp/tests/compile/cases/http-handlers/error_http_handler_no_args.cpp","crates/bindings-cpp/tests/compile/cases/http-handlers/error_http_handler_no_connection_id.cpp","crates/bindings-cpp/tests/compile/cases/http-handlers/error_http_handler_no_db.cpp","crates/bindings-cpp/tests/compile/cases/http-handlers/error_http_handler_no_request_arg.cpp","crates/bindings-cpp/tests/compile/cases/http-handlers/error_http_handler_no_return_type.cpp","crates/bindings-cpp/tests/compile/cases/http-handlers/error_http_handler_no_sender.cpp","crates/bindings-cpp/tests/compile/cases/http-handlers/error_http_handler_wrong_ctx.cpp","crates/bindings-cpp/tests/compile/cases/http-handlers/error_http_handler_wrong_request_arg_type.cpp","crates/bindings-cpp/tests/compile/cases/http-handlers/error_http_handler_wrong_return_type.cpp","crates/bindings-cpp/tests/compile/cases/http-handlers/error_http_router_not_a_function.cpp","crates/bindings-cpp/tests/compile/cases/http-handlers/error_http_router_with_args.cpp","crates/bindings-cpp/tests/compile/cases/http-handlers/error_http_router_wrong_return_type.cpp","crates/bindings-cpp/tests/compile/cases/http-handlers/ok_http_handlers_basic.cpp","crates/bindings-cpp/tests/compile/run-compile-tests.ps1","crates/bindings-cpp/tests/compile/run-compile-tests.sh","crates/bindings-cpp/tests/main.cpp","crates/bindings-cpp/tests/module_library_unit_tests.cpp","crates/bindings-cpp/tests/query-builder-compile/fail_event_lookup.cpp","crates/bindings-cpp/tests/query-builder-compile/fail_implicit_numeric_where_types.cpp","crates/bindings-cpp/tests/query-builder-compile/fail_incompatible_join_types.cpp","crates/bindings-cpp/tests/query-builder-compile/fail_incompatible_where_types.cpp","crates/bindings-cpp/tests/query-builder-compile/fail_indexed_where_public_api.cpp","crates/bindings-cpp/tests/query-builder-compile/fail_invalid_join_predicate.cpp","crates/bindings-cpp/tests/query-builder-compile/fail_non_index_join.cpp","crates/bindings-cpp/tests/query-builder-compile/pass_query_integration.cpp","crates/bindings-cpp/tests/query-builder-compile/run_query_builder_compile_tests.sh","crates/bindings-cpp/tests/query-builder-sql/CMakeLists.txt","crates/bindings-cpp/tests/query-builder-sql/main.cpp","crates/bindings-cpp/tests/query-builder-sql/query_builder_sql_tests.cpp","crates/bindings-cpp/tests/query-builder-sql/run_query_builder_sql_tests.sh","crates/bindings-cpp/tests/type-isolation-test/.gitignore","crates/bindings-cpp/tests/type-isolation-test/CMakeLists.module.txt","crates/bindings-cpp/tests/type-isolation-test/CMakeLists.txt","crates/bindings-cpp/tests/type-isolation-test/CMakeLists_module.txt","crates/bindings-cpp/tests/type-isolation-test/README.md","crates/bindings-cpp/tests/type-isolation-test/run_type_isolation_test.sh","crates/bindings-cpp/tests/type-isolation-test/test_modules/debug_constraint_simple.cpp","crates/bindings-cpp/tests/type-isolation-test/test_modules/debug_large_struct.cpp","crates/bindings-cpp/tests/type-isolation-test/test_modules/debug_minimal_fail.cpp","crates/bindings-cpp/tests/type-isolation-test/test_modules/debug_optional_large_struct.cpp","crates/bindings-cpp/tests/type-isolation-test/test_modules/debug_simple_enum.cpp","crates/bindings-cpp/tests/type-isolation-test/test_modules/debug_special.cpp","crates/bindings-cpp/tests/type-isolation-test/test_modules/debug_special_constraints.cpp","crates/bindings-cpp/tests/type-isolation-test/test_modules/debug_special_reducers.cpp","crates/bindings-cpp/tests/type-isolation-test/test_modules/debug_trace.cpp","crates/bindings-cpp/tests/type-isolation-test/test_modules/debug_vector_only.cpp","crates/bindings-cpp/tests/type-isolation-test/test_modules/debug_vector_only_simple.cpp","crates/bindings-cpp/tests/type-isolation-test/test_modules/error_autoinc_non_integer.cpp","crates/bindings-cpp/tests/type-isolation-test/test_modules/error_circular_ref.cpp","crates/bindings-cpp/tests/type-isolation-test/test_modules/error_default_missing_field.cpp","crates/bindings-cpp/tests/type-isolation-test/test_modules/error_invalid_index.cpp","crates/bindings-cpp/tests/type-isolation-test/test_modules/error_multicolumn_missing_field.cpp","crates/bindings-cpp/tests/type-isolation-test/test_modules/error_multiple_pk.cpp","crates/bindings-cpp/tests/type-isolation-test/test_modules/error_non_spacetimedb_type.cpp","crates/bindings-cpp/tests/type-isolation-test/test_modules/error_scheduled_id_pk.cpp","crates/bindings-cpp/tests/type-isolation-test/test_modules/module01_basic_unsigned.cpp","crates/bindings-cpp/tests/type-isolation-test/test_modules/module02_large_unsigned.cpp","crates/bindings-cpp/tests/type-isolation-test/test_modules/module03_basic_signed.cpp","crates/bindings-cpp/tests/type-isolation-test/test_modules/module04_large_signed.cpp","crates/bindings-cpp/tests/type-isolation-test/test_modules/module05_float_bool.cpp","crates/bindings-cpp/tests/type-isolation-test/test_modules/module06_string.cpp","crates/bindings-cpp/tests/type-isolation-test/test_modules/module07_special_types.cpp","crates/bindings-cpp/tests/type-isolation-test/test_modules/module08_enums.cpp","crates/bindings-cpp/tests/type-isolation-test/test_modules/module09_structs.cpp","crates/bindings-cpp/tests/type-isolation-test/test_modules/module10_vectors.cpp","crates/bindings-cpp/tests/type-isolation-test/test_modules/module11_optional.cpp","crates/bindings-cpp/tests/type-isolation-test/test_modules/module12_constraints.cpp","crates/bindings-cpp/tests/type-isolation-test/test_modules/test_complex_reducer_only.cpp","crates/bindings-cpp/tests/type-isolation-test/test_modules/test_complex_table_only.cpp","crates/bindings-cpp/tests/type-isolation-test/test_modules/test_connectionid_only.cpp","crates/bindings-cpp/tests/type-isolation-test/test_modules/test_debug_optional.cpp","crates/bindings-cpp/tests/type-isolation-test/test_modules/test_enum_table_only.cpp","crates/bindings-cpp/tests/type-isolation-test/test_modules/test_enum_vector_payloads.cpp","crates/bindings-cpp/tests/type-isolation-test/test_modules/test_identity_only.cpp","crates/bindings-cpp/tests/type-isolation-test/test_modules/test_massive_reducer.cpp","crates/bindings-cpp/tests/type-isolation-test/test_modules/test_minimal_special.cpp","crates/bindings-cpp/tests/type-isolation-test/test_modules/test_mixed_types.cpp","crates/bindings-cpp/tests/type-isolation-test/test_modules/test_multicolumn_index_valid.cpp","crates/bindings-cpp/tests/type-isolation-test/test_modules/test_nested_optionals.cpp","crates/bindings-cpp/tests/type-isolation-test/test_modules/test_optional_debug.cpp","crates/bindings-cpp/tests/type-isolation-test/test_modules/test_optional_reducer_only.cpp","crates/bindings-cpp/tests/type-isolation-test/test_modules/test_optional_simple.cpp","crates/bindings-cpp/tests/type-isolation-test/test_modules/test_optional_table_only.cpp","crates/bindings-cpp/tests/type-isolation-test/test_modules/test_simple_table.cpp","crates/bindings-cpp/tests/type-isolation-test/test_modules/test_single_special_vector.cpp","crates/bindings-cpp/tests/type-isolation-test/test_modules/test_special_minimal.cpp","crates/bindings-cpp/tests/type-isolation-test/test_modules/test_special_vectors.cpp","crates/bindings-cpp/tests/type-isolation-test/test_modules/test_timeduration_only.cpp","crates/bindings-cpp/tests/type-isolation-test/test_modules/test_timestamp_only.cpp","crates/bindings-cpp/tests/type-isolation-test/test_modules/test_u128_only.cpp","crates/bindings-cpp/tests/type-isolation-test/test_modules/test_unified_enum.cpp","crates/bindings-cpp/tests/type-isolation-test/test_modules/test_unit_isolation.cpp","crates/bindings-cpp/tests/type-isolation-test/test_modules/test_unit_progression.cpp","crates/bindings-cpp/tests/type-isolation-test/test_modules/test_unit_simple.cpp","crates/bindings-cpp/tests/type-isolation-test/test_modules/test_unit_struct.cpp","crates/bindings-cpp/tests/type-isolation-test/test_modules/test_wrapped_special.cpp","crates/bindings-cpp/tests/type-isolation-test/update_table_from_log.sh","crates/bindings-cpp/tests/unit/CMakeLists.txt","crates/bindings-cpp/tests/unit/README.md","crates/bindings-cpp/tests/unit/http_unit_tests.cpp","crates/bindings-cpp/tests/unit/main.cpp","crates/bindings-cpp/tests/unit/run-unit-tests.ps1","crates/bindings-cpp/tests/unit/run-unit-tests.sh","crates/bindings-cpp/tests/unit/test_harness.h","crates/bindings-csharp/.config/dotnet-tools.json","crates/bindings-csharp/.editorconfig","crates/bindings-csharp/.gitignore","crates/bindings-csharp/BSATN.Codegen/BSATN.Codegen.csproj","crates/bindings-csharp/BSATN.Codegen/Diag.cs","crates/bindings-csharp/BSATN.Codegen/README.md","crates/bindings-csharp/BSATN.Codegen/Type.cs","crates/bindings-csharp/BSATN.Codegen/Utils.cs","crates/bindings-csharp/BSATN.Runtime.Tests/BSATN.Runtime.Tests.csproj","crates/bindings-csharp/BSATN.Runtime.Tests/Tests.cs","crates/bindings-csharp/BSATN.Runtime/.gitignore","crates/bindings-csharp/BSATN.Runtime/Attrs.cs","crates/bindings-csharp/BSATN.Runtime/BSATN.Runtime.csproj","crates/bindings-csharp/BSATN.Runtime/BSATN/AlgebraicType.cs","crates/bindings-csharp/BSATN.Runtime/BSATN/I128.cs","crates/bindings-csharp/BSATN.Runtime/BSATN/I256.cs","crates/bindings-csharp/BSATN.Runtime/BSATN/Runtime.cs","crates/bindings-csharp/BSATN.Runtime/BSATN/U128.cs","crates/bindings-csharp/BSATN.Runtime/BSATN/U256.cs","crates/bindings-csharp/BSATN.Runtime/BSATN/Uuid.cs","crates/bindings-csharp/BSATN.Runtime/Builtins.cs","crates/bindings-csharp/BSATN.Runtime/Db.cs","crates/bindings-csharp/BSATN.Runtime/HttpWireTypes.cs","crates/bindings-csharp/BSATN.Runtime/Internal/ByteArrayComparer.cs","crates/bindings-csharp/BSATN.Runtime/QueryBuilder.cs","crates/bindings-csharp/BSATN.Runtime/README.md","crates/bindings-csharp/BSATN.Runtime/package.json","crates/bindings-csharp/Codegen.Tests/Codegen.Tests.csproj","crates/bindings-csharp/Codegen.Tests/TestInit.cs","crates/bindings-csharp/Codegen.Tests/Tests.cs","crates/bindings-csharp/Codegen.Tests/fixtures/Directory.Build.props","crates/bindings-csharp/Codegen.Tests/fixtures/client/Lib.cs","crates/bindings-csharp/Codegen.Tests/fixtures/client/client.csproj","crates/bindings-csharp/Codegen.Tests/fixtures/client/snapshots/Type#CustomClass.verified.cs","crates/bindings-csharp/Codegen.Tests/fixtures/client/snapshots/Type#CustomStruct.verified.cs","crates/bindings-csharp/Codegen.Tests/fixtures/client/snapshots/Type#CustomTaggedEnum.verified.cs","crates/bindings-csharp/Codegen.Tests/fixtures/client/snapshots/Type#PublicTable.verified.cs"],"storefront":"/r/clockworklabs","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/clockworklabs/SpacetimeDB/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}