Skip to content

geoffjay/nemo

Repository files navigation

CI Release codecov MIT licensed Apache licensed

Nemo

Warning

Nemo is in a Beta state, it's safe to use but breaking changes are possible.

Nemo

A configuration-driven desktop application framework. Define UI, data sources, and event handlers in XML -- Nemo renders a native, GPU-accelerated application.

Built on GPUI.

Quick Start

cargo build --release
nemo --app-config app.xml

A minimal application:

<nemo>
  <app title="Hello Nemo">
    <window title="Hello Nemo" />
    <theme name="kanagawa" mode="dark" />
  </app>

  <layout type="stack">
    <label id="greeting" text="Hello, World!" />
  </layout>
</nemo>

Features

  • Declarative UI -- Component trees defined in XML configuration
  • Live data binding -- Connect timer, HTTP, WebSocket, MQTT, Redis, and NATS sources to components
  • Scripted logic -- Event handlers written in RHAI
  • Theming -- Built-in themes (Kanagawa, Catppuccin, Tokyo Night, Gruvbox, Nord) with dark/light modes
  • Extensible -- Native plugin support via dynamic libraries

Examples

nemo --app-config examples/basic/app.xml
nemo --app-config examples/calculator/app.xml
nemo --app-config examples/components/app.xml
nemo --app-config examples/data-binding/app.xml

Configuations are available in the examples directory:

Documentation

Full documentation is available at geoffjay.github.io/nemo or locally via zensical serve.

Plugin API documentation is also available for nemo-plugin, nemo-plugin-api, and nemo-wasm-guest.

License

MIT OR Apache-2.0

About

The application with no name

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages