Files
SpacetimeDB/sdks/rust/Cargo.toml
Mazdak Farrokhzad d6bc325244 Define TableName and ReducerName backed by EcoString (#4137)
# Description of Changes

The first commit defines a type `TableName` that is used in e.g.,
`TxData` and where determined profitable and necessary to do this
change.
`TableName` is backed by
[`ecow::EcoString`](https://docs.rs/ecow/0.2.6/ecow/string/struct.EcoString.html)
which affords O(1) clones and 15 bytes of inline storage and
`mem::size_of::<EcoString>() == 16`.

The second commit does the same for `ReducerName`. This is also used in
reducer execution.

Together, these commits increase TPS by around 5-7k TPS.

# API and ABI breaking changes

None

# Expected complexity level and risk

1

# Testing

Covered by existing tests.
2026-01-27 23:20:30 +00:00

49 lines
1.3 KiB
TOML

[package]
name = "spacetimedb-sdk"
version.workspace = true
edition.workspace = true
license-file = "LICENSE"
description = "A Rust SDK for clients to interface with SpacetimeDB"
rust-version.workspace = true
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
spacetimedb-data-structures.workspace = true
spacetimedb-sats.workspace = true
spacetimedb-lib = { workspace = true, features = ["serde", "metrics_impls"]}
spacetimedb-client-api-messages.workspace = true
spacetimedb-metrics.workspace = true
spacetimedb-query-builder.workspace = true
spacetimedb-schema.workspace = true
thiserror.workspace = true
anymap.workspace = true
base64.workspace = true
brotli.workspace = true
bytes.workspace = true
flate2.workspace = true
futures.workspace = true
futures-channel.workspace = true
home.workspace = true
http.workspace = true
log.workspace = true
once_cell.workspace = true
prometheus.workspace = true
rand.workspace = true
tokio.workspace = true
tokio-tungstenite.workspace = true
[dev-dependencies]
# for quickstart-chat and cursive-chat examples
hex.workspace = true
# for cursive-chat example
cursive.workspace = true
futures-channel.workspace = true
# for tests
spacetimedb-testing = { path = "../../crates/testing" }
[lints]
workspace = true