Skip to content

v0.5.0 - Schema Import & Performance

Choose a tag to compare

@quinnjr quinnjr released this 07 Jan 18:16
· 110 commits to main since this release

πŸŽ‰ What's New in v0.5.0

✨ Major Features

prax-import - Schema Migration Tool

Convert your existing ORM schemas to Prax format! Now supports:

  • Prisma - Parse .prisma schema files
  • Diesel - Parse table! macro definitions
  • SeaORM - Parse DeriveEntityModel entities
# Import from Prisma
prax import --from prisma --input schema.prisma --output schema.prax

# Import from Diesel
prax import --from diesel --input schema.rs --output schema.prax

# Import from SeaORM
prax import --from sea-orm --input entity/mod.rs --output schema.prax

πŸš€ Performance Improvements

Massive parsing speed improvements through regex caching:

Parser Throughput Speedup
Prisma 7,675 schemas/sec 2.31x faster
Diesel 8,135 schemas/sec 1.80x faster
SeaORM 7,799 schemas/sec New!

πŸ“¦ What's Included

  • New Crate: prax-import with full type mapping support
  • CLI Integration: prax import command with auto-detection
  • Benchmarks: Criterion.rs benchmark suite with detailed metrics
  • Documentation: README, BENCHMARKS.md, type mapping tables
  • Tests: 13 passing tests with comprehensive coverage

πŸ“ Type Mappings

All ORMs map cleanly to Prax types:

  • Integer types β†’ Int, BigInt
  • String types β†’ String, Text
  • Decimal β†’ Decimal, Float
  • Boolean β†’ Boolean
  • DateTime/Timestamp β†’ DateTime
  • JSON/JSONB β†’ Json
  • UUID β†’ Uuid

πŸ”— Resources

πŸ’‘ Quick Example

use prax_import::{import_prisma_schema, import_diesel_schema, import_seaorm_entity};

// Convert Prisma schema
let prax_schema = import_prisma_schema(&prisma_content)?;
std::fs::write("schema.prax", prax_schema.to_string())?;

πŸ™ Thank You

Special thanks to the Rust community and everyone testing the beta!


Full Changelog: https://github.com/pegasusheavy/prax/blob/main/CHANGELOG.md#050---2026-01-07