2 releases
new 0.1.1 | Nov 14, 2024 |
---|---|
0.1.0 | Nov 14, 2024 |
0.0.1 |
|
#340 in Database interfaces
236 downloads per month
54KB
1K
SLoC
convex-typegen
A blazing fast Rust type generator for ConvexDB schemas and functions.
Features
- 🚀 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
Quick Start
- Add dependencies using cargo:
cargo add convex-typegen
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.
Supported Types
- 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
Contributing
Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first.
License
This project is licensed under the MIT License - see the LICENSE file for details.
Acknowledgments
Related Projects
- convex rust sdk - Official Rust client for ConvexDB
Dependencies
~20–29MB
~416K SLoC