Welcome to the Mona monorepo. This project contains a suite of interconnected services and tools designed for high-performance and secure applications.
The repository is organized into several key areas:
A complete web application with a Rust backend (using Axum and SQLite) and a SolidJS frontend. It includes authentication, WASM integration, and a modern UI.
- Backend: Rust, Axum, SQLx (SQLite)
- Frontend: SolidJS, Vite, TypeScript
- WASM: Shared logic compiled from Rust to WebAssembly.
2. TypeGen
A versatile code generation toolset that generates high-quality source code from JSON samples and schemas.
- CLI (
tg): A Rust-based CLI that orchestrates the code generation. - WASM Generators: Language-specific generators (Rust, Java) compiled to WASM for portable execution.
- Test Data: An extensive collection of real-world JSON/YAML/XML samples used for verification.
- Gateway: An API gateway and service registry.
- Oblivious: A zero-knowledge server implementation.
- Shared: Common libraries and utilities used across the monorepo, including caching, email, and middleware.
The project uses Rust workspaces. You can build all components using:
cargo buildSpecific components can be built using -p:
cargo build -p typegen-cliThe project uses npm workspaces for the frontend and polyfills:
npm installTo run a script in a specific package, use the -w (workspace) flag:
# Run the SolidJS auth frontend in development mode
npm run dev -w @zahash/auth
# Run tests for the polyfill
npm test -w @zahash/typegen.polyfillDetailed instructions for each component can be found in their respective directories:
This project is licensed under the Apache License 2.0. See LICENSE for details.