Skip to content
geoffjayPublic

About

The application with no name

Resources

Stars

1 star

Watchers

1 watching

Forks

Latest commit

 

History

335 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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.

Installation

Install script (macOS / Linux)

curl -fsSL https://raw.githubusercontent.com/geoffjay/nemo/main/scripts/install.sh | sh

Installs the latest release binary to ~/.local/bin (override with NEMO_INSTALL_DIR, or pin a version with NEMO_VERSION=v0.6.0).

Homebrew (macOS / Linux)

brew install geoffjay/tap/nemo

Prebuilt binaries

Download the archive for your platform from the latest release and verify it against checksums.txt.

  • macOS: the app and binary are not code-signed or notarized, so Gatekeeper blocks them on first launch. Remove the quarantine attribute after downloading:

    xattr -dr com.apple.quarantine /Applications/Nemo.app   # app bundle
    xattr -d  com.apple.quarantine ./nemo                   # CLI binary
  • Linux: the .tar.gz binary is dynamically linked. Either install the .deb (which pulls in its dependencies automatically) or install the runtime libraries:

    sudo apt-get install -y libfontconfig1 libfreetype6 libvulkan1 \
      libxcb1 libxkbcommon0 libxkbcommon-x11-0 libwayland-client0

Build from source

cargo build --release
# binary at target/release/nemo

Quick Start

nemo --app-config app.nemo

A minimal application (app.nemo — a single-file component entry):

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

<template name="app">
  <stack id="root">
    <label id="greeting" text="Hello, World!" />
  </stack>
</template>

The application entry is an app.nemo single-file component. Legacy app.xml entries are no longer supported — the loader rejects them; rename to app.nemo (remove the <nemo> wrapper, move the <layout> body into <template name="app">). XML remains valid only inside <include> fragments.

Features

  • Declarative UI -- Component trees defined in .nemo single-file components
  • 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.nemo           # minimal single-file app
nemo --app-config examples/calculator/app.nemo      # calculator with RHAI handlers
nemo --app-config examples/sfc/app.nemo            # single-file components
nemo --app-config examples/components/app.nemo     # full component gallery

Configurations are available in the examples directory:

  • app-shell: Application shell layout (sidenav + pages + header/footer bars)
  • basic: A minimal application
  • calculator: A calculator application
  • complete: Kitchen-sink example with variables, includes, and routing
  • components: The component gallery — every built-in component with live examples
  • custom-theme: Defining a custom theme
  • data-binding: Data sources (timer, HTTP, MQTT, WebSocket, Redis, NATS) bound to components
  • data-streaming: A live streaming dashboard
  • dev-dashboard: The Nemo dev dashboard
  • pid-control: A PID control demo
  • router: Client-side routing between pages
  • sfc: Single-file components with child components
  • svg: SVG rendering
  • task-list: A task list application

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

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages