Elyra Framework documentation
A Rust + Svelte 5 framework for hyper-responsive desktop apps — Laravel's
ergonomics (container, providers, a typed bridge), compiled and binary, with no
runtime overhead. The CLI is Ratatosk (rata).
Start here
- Getting started — install, scaffold, run.
- Architecture — the big picture and the Laravel map.
- Configuration (
elyra.toml) — the project descriptor.
Backend (Rust)
- Commands —
#[command],Ctx,Resultcommands. - Container & providers — DI + wiring.
- Middleware — the dispatch pipeline.
- Events —
EventBus, batched Rust→frontend push. - Windows — window config + multi-window.
- About dialog — built-in About window from
App::about. - System tray — tray icon + menu (
trayfeature). - Auto-updater — ed25519-verified updates (
updaterfeature).
Data (Rust)
- Database — SQLite / MySQL / Postgres via one
Database. - Migrations —
rata migrate, batches, rollback. - Models —
#[derive(Model)]Active Record + query builder + relations.
Frontend & bridge
- Frontend runtime —
@elyra/runtime:invoke,channel,api.*. - Codegen — specta → TypeScript types + typed
api.*. - Wire format — the binary IPC contract.
Tooling
- Ratatosk CLI —
new,dev,codegen,build,bundle,migrate. - Roadmap — milestones and what's deferred.
- Changelog — released versions and changes.
Crate layout
framework/ elyra — App, Container/Ctx, Command, events, shell (tao+wry)
macros/ elyra-macros — #[command] and #[derive(Model)]
database/ elyra-db — Database, migrations, models (GUI-free)
ratatosk/ ratatosk — the `rata` CLI
runtime/ @elyra/runtime — invoke(), channel(), generated api.*
example/ elyra-example — the demo app / DX benchmark
Cargo features (on the elyra crate)
| Feature | Enables |
|---|---|
database |
Database, Model, migrations, App::database |
tray |
App::tray, the system tray |
updater |
the updater module (ed25519) |
elyra = { version = "0.1", features = ["database", "tray", "updater"] }