clockworklabs / clockworklabs/SpacetimeDB
Add Swift SDK and demo client support
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 25.2k
- Forks
- 1.1k
- Avg merge
- 2d 7h
- Merged PRs (30d)
- 46
Description
This issue tracks reimplementing the work from stale PR #4509, which has been closed because it is too far out of date to merge directly.
Original pull request
- PR #4509: Swift SDK + Swift demo clients + Ninja game fixes/perf/UI polish
- Original author: @avias8
What the original PR was trying to do
What Native Swift SDK for SpacetimeDB, plus Swift code generation, two end-to-end Swift demo clients, and CI/E2E tooling in the monorepo. This PR adds first-class Swift support via: - sdks/swift pure Swift package runtime - Swift backend in crates/codegen + CLI integration (spacetime generate --lang swift) - Swift demo clients: - demo/simple-module/client-swift - demo/ninja-game/client-swift - Swift-focused CI: - SDK/package build + test workflow - procedure callback E2E workflow - generated-binding drift check Why SpacetimeDB needed a native Swift client path for Apple platforms and realtime Swift UI/game workloads without relying on non-Swift client layers. This PR enables: - Native iOS/macOS integration through Swift Package Manager - Typed Swift bindings generated from module schema - End-to-end validation against real local modules - CI enforcement that generated Swift bindings r...
Closure context
- Just want to make the same comment here as in the Kotlin PR:
https://github.com/clockworklabs/SpacetimeDB/pull/4471#issuecomment-4247615903
- Tyler explicitly pointed this PR at the same closure rationale as the Kotlin PR: long-term language support should be approached in a way that works coherently across client and server support, rather than by continuing to accumulate fully separate SDK/codegen stacks.
Reimplementation notes
- Reimplement this work on top of current
masterin a new PR. - Keep the original PR linked as historical context and as a source of useful implementation ideas where still relevant.
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
Review stale PR #4509 and compare its approach with current master. Start with sdks/swift, crates/codegen, CLI integration, demo/simple-module/client-swift, and demo/ninja-game/client-swift, then inspect the referenced CI and E2E tooling. Done means the Swift SDK, generation path, demo clients, and validation workflows are reimplemented coherently in a new PR.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- github-actions, rust, swift
- Domain
- build-system, ci-cd, devtools, mobile-dev
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100