Shubham Mishra e4098f98d9
Rust: macro change name -> accessor (#4264)
## Description of Changes

This PR primarily affects the `bindings-macro` and `schema` crates to
review:

### Core changes

1. Replaces the `name` macro with `accessor` for **Tables, Views,
Procedures, and Reducers** in Rust modules.
2. Extends `RawModuleDefV10` with a new section for:

   * case conversion policies
   * explicit names
    New sections are not validated in this PR so not functional.
3. Updates index behavior:

* Index names are now always **system-generated** for clients. Which
will be fixed in follow-up PR when we start validating RawModuleDef with
explicit names.
   * The `accessor` name for an index is used only inside the module.


## Breaking changes (API/ABI)

1. **Rust modules**

   * The `name` macro must be replaced with `accessor`.

2. **Client bindings (all languages)**

* Index names are now system-generated instead of using explicitly
provided names.


**Complexity:** 3

A follow-up PR will reintroduce explicit names with support for case
conversion.

---------

Co-authored-by: rekhoff <r.ekhoff@clockworklabs.io>
Co-authored-by: clockwork-labs-bot <clockwork-labs-bot@users.noreply.github.com>
Co-authored-by: clockwork-labs-bot <bot@clockworklabs.com>
2026-02-16 15:23:50 +00:00
..
2023-08-01 23:16:37 +02:00
2025-02-28 14:32:59 +00:00
2023-08-01 23:16:37 +02:00
2025-08-22 19:36:47 +00:00

benchmarks Rust Modules

This provides the various modules used for benchmarking SpacetimeDB, with the crate bench.

Note: Also mirrored as a C# version at modules/benchmarks-cs, so must be kept in sync.

Benchmarks

circles.rs

Implements a smaller variation of the Blackholio game.

Circles are spawned and then queried to evaluate CROSS JOIN performance.

ia_loop.rs

Implements a simplified version of the ia loop from BitCraft.

This benchmark spawns a large number of entities in a world and queries them to measure UPDATE performance, running a single loop of the enemy AI.

synthetic.rs

Contains various synthetic benchmarks designed to test database performance. These benchmarks involve tables with different type combinations and evaluate INSERT, UPDATE, DELETE, and SELECT operations in both simple and bulk scenarios.

How to Run

For detailed instructions on running the benchmarks, refer to the benchmarks README.