Skip to content

[Divergence] Sync-rules package adds a Rust schema generator (powersync-service #789) #635

Description

@benitav

What's changing: The @powersync/service-sync-rules package, which backs the CLI's generate schema command and the PowerSync Dashboard's client schema generation, adds a rust schema generator that outputs an app_schema() function matching the Rust SDK's expected shape, with table and column names escaped.

High priority — existing docs are now inaccurate or incomplete
None identified. The Rust SDK Reference already shows a hand-written schema.rs example in the same shape this generator produces, so nothing existing is contradicted.

For reviewer consideration — worth documenting

  • PowerSync CLI (https://docs.powersync.com/tools/cli), "1. Define the Client-Side Schema" section and the Common Commands table: powersync generate schema --output= now accepts rust as a supported output type. No page lists the full set of supported output languages, so this is a new capability rather than a correction.
  • Rust SDK Reference (https://docs.powersync.com/client-sdks/reference/rust), "1. Define the Client-Side Schema" section: the existing schema.rs example is hand-written; worth noting readers can now generate this file automatically via the CLI or Dashboard, as already described for the other SDKs through the shared "Generate schema automatically" callout.

Source PR: powersync-ja/powersync-service#789 — merged 2026-09-09.

Filed automatically by Claude Code (claude-sonnet-5). A human must verify the scope, prepare the docs PR, and publish it only once this update has been released.

Activity

  1. benitav commented on Sep 15, 2026

    @benitav
    CollaboratorAuthor

    This feature now shipped on the Dashboard side too: powersync-ja/powersync-dashboard#572 (merged 2026-09-14) adds Rust to the language dropdown in the Dashboard's Client SDK Setup / Connect drawer, so it now calls the same rust schema generator this issue tracks and also adds a generic Rust connector snippet (Rust has no Supabase connector, so that toggle is now disabled with an explanatory tooltip for SDKs without one). It's the same underlying capability described above ("the PowerSync Dashboard's client schema generation"), now live rather than just implemented in the shared package.

    This doesn't change the affected pages already listed, but note the Rust SDK Reference's "Generate schema automatically" tip (shared across SDK pages) can now be verified end-to-end from the Dashboard, not just the CLI.

    Filed automatically by Claude Code (claude-sonnet-5). A human must verify the scope, prepare the docs PR, and publish it only once this update has been released.


    Generated by Claude Code

  2. benitav commented on Sep 15, 2026

    @benitav
    CollaboratorAuthor

    Related PR: powersync-ja/powersync-dashboard#572, merged 2026-09-14. This is the Dashboard side of the same feature this issue tracks: it adds Rust to the language dropdown on the Dashboard's Client SDK Setup page and Connect drawer, using the Rust generator from @powersync/service-sync-rules that landed in powersync-service#789 (already referenced above). It also disables the Supabase snippet toggle for Rust, since no Supabase connector exists for that SDK yet. Newly affected page: Dashboard (/tools/powersync-dashboard), "Client SDK Setup" view and Connect drawer description, which doesn't yet mention Rust as a supported language for schema generation.

    Filed automatically by Claude Code (claude-sonnet-5).


    Generated by Claude Code

  3. benitav commented on Sep 29, 2026

    @benitav
    CollaboratorAuthor

    The client-side schema section in the SDK ref also has the note about generating it automatically, so now it's just accurate. No other updates needed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions