{"id":51781855,"url":"https://github.com/kwhorne/elyra-framework","last_synced_at":"2026-07-20T13:03:30.433Z","repository":{"id":371175075,"uuid":"1292392014","full_name":"kwhorne/elyra-framework","owner":"kwhorne","description":"Elyra Framework — a Rust + Svelte 5 framework for fast, compiled, binary desktop apps. Laravel-like ergonomics: container, providers, middleware, and a typed MessagePack IPC bridge.","archived":false,"fork":false,"pushed_at":"2026-07-13T20:04:38.000Z","size":288,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-07-13T21:12:30.789Z","etag":null,"topics":["desktop","desktop-app","framework","gui","laravel-inspired","messagepack","rust","svelte","tao","tauri-alternative","webview","wry"],"latest_commit_sha":null,"homepage":null,"language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kwhorne.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":"docs/roadmap.md","authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-07-07T13:46:43.000Z","updated_at":"2026-07-13T20:04:43.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/kwhorne/elyra-framework","commit_stats":null,"previous_names":["kwhorne/elyra-framework"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/kwhorne/elyra-framework","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kwhorne%2Felyra-framework","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kwhorne%2Felyra-framework/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kwhorne%2Felyra-framework/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kwhorne%2Felyra-framework/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kwhorne","download_url":"https://codeload.github.com/kwhorne/elyra-framework/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kwhorne%2Felyra-framework/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35686949,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-07-20T02:08:10.276Z","status":"ssl_error","status_checked_at":"2026-07-20T02:08:09.736Z","response_time":111,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["desktop","desktop-app","framework","gui","laravel-inspired","messagepack","rust","svelte","tao","tauri-alternative","webview","wry"],"created_at":"2026-07-20T13:03:29.595Z","updated_at":"2026-07-20T13:03:30.428Z","avatar_url":"https://github.com/kwhorne.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Elyra Framework\n\n[![CI](https://github.com/kwhorne/elyra-framework/actions/workflows/ci.yml/badge.svg)](https://github.com/kwhorne/elyra-framework/actions/workflows/ci.yml)\n[![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](#license)\n\nA Rust + Svelte 5 framework for hyper-responsive desktop apps. Laravel's\nergonomics — container, providers, middleware, a typed bridge — but **compiled,\nbinary, and without runtime overhead**.\n\nThe CLI is **Ratatosk** (`rata`): the squirrel that runs messages up and down\nYggdrasil, between the Rust root and the Svelte crown.\n\n\u003e 📚 **Documentation: [elyracode.com/framework](https://elyracode.com/framework)**\n\u003e (source in [`docs/`](docs/README.md)). This page is just a landing page.\n\n## Highlights\n\n- **Binary IPC** — MessagePack over an `elyra://localhost` custom protocol; no\n  JSON in the hot path. ([wire format](docs/wire-format.md))\n- **`#[command] async fn`** dispatched through a [middleware](docs/middleware.md)\n  pipeline, with a [container](docs/container-and-providers.md) and\n  [providers](docs/container-and-providers.md).\n- **`EventBus` + `channel()`** — Rust→frontend push, batched per flush over a\n  long-poll; the UI thread never blocks. ([events](docs/events.md))\n- **Typed bridge** — `rata codegen` turns specta types into TS + a typed\n  `api.*` facade. ([codegen](docs/codegen.md))\n- **Windows, tray, updater** — [multi-window](docs/windows.md),\n  [system tray](docs/tray.md), and an [ed25519-verified updater](docs/updater.md).\n- **Built-in UI components** — a themed [About dialog](docs/about.md),\n  [auto-update toast](docs/updater.md), and [dialogs / toasts / ⌘K palette /\n  context menu](docs/components.md).\n- **Desktop APIs** — native [dialogs, shell-open, clipboard, notifications](docs/system.md),\n  [window control + file drop](docs/windows.md), [global shortcuts](docs/shortcuts.md),\n  [app menu](docs/menu.md), a [settings store](docs/store.md),\n  [autostart](docs/autostart.md), and [sidecar processes](docs/sidecar.md).\n- **Data** — one [`Database`](docs/database.md) over SQLite/MySQL/Postgres,\n  [`rata migrate`](docs/migrations.md), and [`#[derive(Model)]`](docs/models.md)\n  Active Record with a query builder and relations.\n- **AI SDK** — a Laravel-inspired [`elyra::ai`](docs/ai.md): agents, tools,\n  structured output, images, and embeddings over Anthropic + OpenAI (`ai` feature).\n- **Shared facades** — [`Cache`](docs/cache.md), [`Storage`](docs/storage.md), and\n  [`Queue`](docs/queue.md) with the same surface as the Askr/Laravel side, over\n  local backends — one ecosystem, two worlds.\n\n## Layout\n\n```\nelyra-framework/\n├── framework/   # elyra          — App, Container/Ctx, Command, events, shell (tao+wry)\n├── macros/      # elyra-macros   — #[command] and #[derive(Model)]\n├── database/    # elyra-db       — Database, migrations, models (GUI-free)\n├── ratatosk/    # ratatosk       — the `rata` CLI\n├── runtime/     # @elyra/runtime — invoke(), channel(), generated api.*\n└── example/     # elyra-example  — the demo app / DX benchmark\n```\n\n## Quick start\n\n```bash\nrata new myapp                 # scaffold (see docs/getting-started.md)\ncd myapp\n(cd app \u0026\u0026 npm install \u0026\u0026 npm run build)\nrata codegen                   # generate typed bindings\ncargo run                      # launch\n```\n\nOr run the bundled demo from this repo — no npm needed (serves a built-in\nfallback page):\n\n```bash\ncargo run -p elyra-example\n```\n\n## A command, end to end\n\n```rust\nuse elyra::{command, commands, App, Ctx};\n\n#[command]\nasync fn greet(_ctx: Ctx, name: String) -\u003e String {\n    format!(\"Hello, {name}!\")\n}\n\nfn main() -\u003e elyra::Result\u003c()\u003e {\n    App::new()\n        .commands(commands![greet])\n        .assets(elyra::asset_resolver::\u003cAssets\u003e())\n        .run()\n}\n```\n\n```ts\nimport { api } from \"./bindings\";              // generated by `rata codegen`\nconst greeting = await api.greet(\"World\");     // (name: string) =\u003e Promise\u003cstring\u003e\n```\n\n## Cargo features (`elyra` crate)\n\n| Feature | Enables |\n|---|---|\n| `database` | `Database`, `#[derive(Model)]`, migrations, `App::database` |\n| `tray` | `App::tray`, the system tray |\n| `updater` | the `updater` module (ed25519) |\n| `system` | native dialogs, shell-open, clipboard, notifications, paths |\n| `shortcuts` | OS-level global keyboard shortcuts |\n\n```toml\nelyra = { version = \"0.5\", features = [\"database\", \"tray\", \"updater\", \"system\", \"shortcuts\"] }\n```\n\n## Status\n\n**v0.5.1** — a big step toward an Electron alternative, with a built-in AI SDK\nand shared `Cache` / `Storage` / `Queue` facades over the backend-agnostic\n[`substrate-core`](docs/substrate.md) contract. On top of the core (commands, events, DB/models, codegen, About +\nauto-update), 0.3 adds native **system integration** (dialogs, shell-open,\nclipboard, notifications, paths), **UI components** (dialogs, toasts, ⌘K command\npalette, context menu), **window control** + file drop + state persistence,\n**global shortcuts**, a native **app menu**, a **settings store**, **autostart**,\n**sidecar** processes, **single-instance** + **deep-linking**, and a\nLaravel-inspired **[AI SDK](docs/ai.md)** (agents, tools, sub-agents, structured\noutput, streaming, provider tools, images, audio, embeddings, RAG, plus\nretries / failover / caching), plus ergonomic [`Cache`](docs/cache.md) /\n[`Storage`](docs/storage.md) / [`Queue`](docs/queue.md) facades that mirror the\nAskr/Laravel side. See the [changelog](CHANGELOG.md) and the\n[roadmap](docs/roadmap.md).\n\nEach milestone is compiled, clippy-clean, and tested (SQLite for the DB layer;\nGUI/OS integrations are launch-smoked, with visual / side-effecting steps called\nout as unverified).\n\n## Learn more\n\nFull documentation lives at **[elyracode.com/framework](https://elyracode.com/framework)**.\nStart with [getting started](docs/getting-started.md) and the\n[architecture](docs/architecture.md) overview, then dive into any topic from the\n[documentation index](docs/README.md).\n\n## License\n\nLicensed under the [MIT License](LICENSE).\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md) and the\n[Code of Conduct](CODE_OF_CONDUCT.md) to get involved.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkwhorne%2Felyra-framework","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkwhorne%2Felyra-framework","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkwhorne%2Felyra-framework/lists"}