A blazing fast Rust type generator for ConvexDB schemas and functions.
- 🚀 Blazing Fast: Efficient AST parsing and type generation using oxc
- 🔄 Auto-regeneration: Types automatically update when schema or function files change
- 🛠️ Complete Type System:
- Full schema type generation (tables, columns, unions)
- Function argument types for queries, mutations, and actions
- Support for all Convex types (arrays, objects, records, literals)
- Proper handling of optional fields and complex types
- 🔒 Type Safety:
- Compile-time type checking
- Automatic serialization/deserialization
- Zero runtime overhead
- 🎨 Developer Experience:
- Clean, idiomatic Rust code generation
- Smart function path resolution (e.g., "auth:login")
- Detailed documentation for generated types
- Add dependencies using cargo:
cargo add convex-typegen serde serde_json
cargo add --build convex-typegen
- Add the following to your
build.rs
file:
use convex_typegen::generate;
fn main() {
generate().unwrap();
}
- Run
cargo build
to generate the types.
You can watch a demo video here to learn more.
- Basic Types:
string
,number
,boolean
,null
,int64
,bytes
- Complex Types:
array
,object
,record
,union
,optional
- Special Types:
any
,literal
,id
- Custom Types: Automatic enum generation for union types
Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first.
This project is licensed under the MIT License - see the LICENSE file for details.
- convex rust sdk - Official Rust client for ConvexDB