clockworklabs / clockworklabs/SpacetimeDB
Rust codegen: expose `bytes::Bytes` for `BLOB` columns
Open
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 25.2k
- Forks
- 1.1k
- Avg merge
- 2d 7h
- Merged PRs (30d)
- 46
Description
Please add an option to generate bytes::Bytes (instead of Vec<u8>) for binary/blob columns in the Rust bindings produced by spacetime generate.
Why:
Vec<u8>forces an allocation and copy whenever row data is cloned. This adds an extra copy to my workflow, which uses async tasks which need to own their data.bytes::Bytesgives zero‑copy, ref‑counted ownership and cheapClone, reducing latency and allocator pressure for large payloads.- Matches the conventions of the wider async‑Rust ecosystem (hyper, tonic, prost, etc.).
Thanks!
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start at the Rust binding code generation path invoked by spacetime generate and trace how BLOB columns are currently mapped to Vec<u8>. Define where the option belongs and verify that generated bindings can use bytes::Bytes; done means the option produces the requested type for binary columns without changing the default behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- databases
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100