Convex CommunityCCConvex Community
Powered by
λx.1Λ
Convex Community•8mo ago•
8 replies
λx.1

convex-schema-parser

convex-schema-parser

A simple dev tool which generates typed
Python
Python
and
Rust
Rust
api clients. It is intended to run alongside
convex dev
convex dev
.
E.g. you might have to work on multiple other frontends/backends which use your convex deployment and are not
TypeScript
TypeScript
. You would then point
convex-schema-parser
convex-schema-parser
via a
.yaml
.yaml
to your local convex repo and where to write the generated clients. E.g.:

# Configuration for the Convex Client Generator.

# (Required) The absolute path to the root of your Convex project.
# This is the directory that contains the `convex/` folder and `package.json`.
# ABSOLUTE: SO no `~`/`$HOME`, etc.
project_path: /path/to/your/convex/project

# (Required) The absolute path to the generated TypeScript declarations, relative to `project_path`.
declarations_dir: /path/to/your/tmp/declarations

# (Required) A list of generation targets. You can have one or more.
targets:
  # Example 1: Generate a Rust client for a backend service.
  - lang: Rust
    # A list of one or more output files for this target.
    output:
      - ../my-rust-app/src/convex_api.rs
      - ../my-other-app/src/convex_api.rs

  # Example 2: Generate a Python client for data scripts.
  - lang: Python
    output:
      - ../scripts/lib/convex_client.py
# Configuration for the Convex Client Generator.

# (Required) The absolute path to the root of your Convex project.
# This is the directory that contains the `convex/` folder and `package.json`.
# ABSOLUTE: SO no `~`/`$HOME`, etc.
project_path: /path/to/your/convex/project

# (Required) The absolute path to the generated TypeScript declarations, relative to `project_path`.
declarations_dir: /path/to/your/tmp/declarations

# (Required) A list of generation targets. You can have one or more.
targets:
  # Example 1: Generate a Rust client for a backend service.
  - lang: Rust
    # A list of one or more output files for this target.
    output:
      - ../my-rust-app/src/convex_api.rs
      - ../my-other-app/src/convex_api.rs

  # Example 2: Generate a Python client for data scripts.
  - lang: Python
    output:
      - ../scripts/lib/convex_client.py


convex-schema-parser dev
convex-schema-parser dev
uses this file and watches for changes in your convex repo. If the public convex interface changes it will update your generated clients. Rust will catch any potential errors and in Python with something like
basedpyright
basedpyright
you can follow the type-hints.

For any language holds: you decide what the module name is and include it directly in your source-tree. This way you limit the possibility to forget to change/update some other backend of yours whilst making changes to your convex repo.

The
generate
generate
cmd can be used for CI.

More is explained in detail in the repos README itself. Hope others might give feedback/make use of it (:
GitHub
GitHub - ParsonosAI/convex-schema-parser: Parses your `schema.ts` a...
Parses your
schema.ts
schema.ts
and generates types for Python/Rust - ParsonosAI/convex-schema-parser
GitHub - ParsonosAI/convex-schema-parser: Parses your `schema.ts` a...
Convex Community banner
Convex CommunityJoin
Join the Convex Discord! Explore Convex, the backend platform that keeps your app in sync.
15,138Members
Resources
Was this page helpful?

Similar Threads

Recent Announcements
Recent Announcements
james

Hi @everyone with everything going on today I forgot to post on discord about our EU launch! We have a region in Dublin now! You can start using it immediately, even for folks on the free plan. https://news.convex.dev/we-finally-got-our-eu-visa/ Stay tuned for more regions but also stay tuned for more infra improvements where we improve latency for teams no matter where their servers are located. Just at the tip of the iceberg re all the optimizations we have lined up.

james · 4d ago

Wayne

Hi @everyone happy Monday. Components Authoring [Challenge](https://www.convex.dev/components/challenge) updates! Meet the second batch of community-approved components **Firecrawl Scrape **- Scrape any URL and get clean markdown, HTML, screenshots, or structured JSON - with durable caching and reactive queries. https://www.convex.dev/components/firecrawl-scrape Built by: Gitmaxd **Durable Agents **- A Convex component for building durable AI agents with an async tool loop. https://www.convex.dev/components/durable-agents Built by: Siegfried **Convex Debouncer** - A server-side debouncing component for debouncing expensive operations like LLM calls, metrics computation, or any heavy processing that should only run after a period of inactivity. https://www.convex.dev/components/debouncer Built by: Ilya **DatabaseChat **- A Convex component for adding natural language database queries to your app. https://www.convex.dev/components/database-chat Built by: Nick **Transloadit** - A Convex component for creating Transloadit Assemblies, handling resumable uploads with status, and persisting status/results in Convex. https://www.convex.dev/components/transloadit Built by: Kvz **Loops** - A Convex component for integrating with Loops.so email marketing platform. https://www.convex.dev/components/loops Built by: Bobby The [challenge](https://www.convex.dev/components/challenge) is now ongoing, so keep building, and we'll keep rewarding. Thanks, everyone!

Wayne · 3w ago

Liz C

Hi everyone! Have you ever wanted to get your hands on some convex swag? Well you're in luck! We just launched our Convex swag store. Check it out here ---> https://store.convex.dev/

Liz C · 3w ago

Similar Threads

Convex Schema Visualizer
MezMMez / show-and-tell
17mo ago
I build a ConvexDB Schema Parser in Rust...for Rust!
JamalJJamal / show-and-tell
3y ago
Visualize your Convex database schema & functions
Cri.cCCri.c / show-and-tell
3mo ago
Jump to definition for Convex schema tables
Michal SrbMMichal Srb / show-and-tell
9mo ago