Skip to content

Latest commit

 

History

History
110 lines (88 loc) · 6.09 KB

File metadata and controls

110 lines (88 loc) · 6.09 KB

KELD

Keld is a desktop framework being built around a Rust host, Bun application processes, and the operating system's webview. Its goal is to make Electron applications smaller and easier to secure while measuring compatibility against real application behavior. By GYLDLAB.

Pre-alpha: build from source. The current runnable slice scaffolds an application, opens a native webview window, and runs an authenticated IPC echo in a supervised Bun process. Electron migration, application installers, and signed updates are future work.

What works today

  • keld create, keld dev, and keld doctor support the current hello application.
  • The Rust host owns the window and Bun lifecycle; kipc provides authenticated app-link communication, framed messages, and typed codecs.
  • Permission parsing and guard-before-handler checks exist. Broad native services and complete strict-profile admission remain incomplete.
  • @keld/electron implements a limited application-lifecycle facade. Its compatibility board records the known matches and divergences; broad Electron compatibility is not measured yet.

The generated Current/Target/Evidence ledger is the source of truth for implemented scope and its evidence. These rows summarize its no-flag app-session implementation and the latest acceptance limitations; they do not establish release support:

Platform Current app-session slice Qualification still needed
macOS / WKWebView Native window, app link, recovery, ordered Quit/CLI-loss cleanup Stock app native Close remains unverified; complete strict profiles and release packaging
Windows / WebView2 Native window, named-pipe app link, recovery, Ctrl-C cleanup and relaunch Stock app native Close remains incomplete; remaining strict admission and release packaging
Ubuntu/Debian x86_64 / WebKitGTK / Wayland Window, authenticated link, strict Bun generations, recovery Stock app native Close fails the latest Wayland acceptance; X11 product run, other distributions/architectures, release packaging

Try it

Use the source-build quick-start for prerequisites, expected output, and Windows instructions. With Rust and Bun installed, run this in a macOS or Ubuntu/Debian x86_64 Wayland desktop terminal after checking the platform prerequisites and current limitations below:

git clone https://github.com/gyldlab/keld.git
cd keld
cargo build --locked -p keld-cli -p keld-host
./target/debug/keld create hello-keld
cd hello-keld
../target/debug/keld doctor
../target/debug/keld dev

The expected result is a hello-keld window. Captured Bun output, including IPC echo ok, appears at shutdown. Maintainer-recorded, source-pinned public evidence covers the Windows build/window/Ctrl-C/relaunch run and the Ubuntu build/create/doctor/window/Ctrl-C/relaunch run. Both used Bun 1.4.0; Windows used interactive PowerShell. These interrupt runs do not pass the separate native-Close criterion.

Known Linux lifecycle gap: on the tested Ubuntu/Wayland candidate, native Close removes the renderer but leaves the host, Bun, and launch stage running. Ctrl-C cleaned up that session; this separate interrupt result does not pass normal-close acceptance. The lifecycle issue tracks the required stock-app fix. The Rust executables are built from source; there is no npm installation or packaged app release yet.

Evidence

  • Product status: code and tests behind every current capability, with target-only work called out.
  • Electron compatibility: implemented lifecycle behavior and divergences. No product corpus percentage is published yet.
  • Benchmarks and the measurement scoreboard: OS-qualified fixtures, pinned measurements, and limitations. Historical hello measurements do not establish a performance claim for a complete migrated application.
  • CI: current automated checks. A CI run and a real desktop acceptance run are different evidence.
  • Public, source-pinned device records: Windows/WebView2, initial Ubuntu/WebKitGTK, and the Ubuntu refresh. These maintainer-recorded observations preserve their platform limits and do not establish acceptance for another OS, session type, or exit path.

Roadmap

The public roadmap explains the next prerequisites and their exit criteria. GitHub Issues is the public place to report defects, find contribution opportunities, and follow work.

Target

Keld aims to provide a prebuilt Rust host, supervised Bun application roles, typed kipc, and generated host-enforced default-deny permissions. Electron applications would migrate through a compatibility facade with unsupported behavior visible.

keld migrate and keld build are reserved commands today. VS Code migration is a future stress workload that depends on those framework contracts; it is not a current demo. The architecture defines the destination.

Contribute

Start with CONTRIBUTING.md, the maintainers, and the Code of Conduct. Report vulnerabilities through SECURITY.md. Public code, documentation, and tests are sufficient to contribute; private research is optional.

License

MIT OR Apache-2.0 — LICENSE, LICENSE-MIT, LICENSE-APACHE.