1# nahual
2
3> `nahual` (Nahuatl: *companion spirit*). Everyday "open-with" viewers, in Rust, on [Llimphi](https://github.com/tawasuyu/llimphi).
4
5`nahual` is the set of viewers a desktop user expects — a file shell that dispatches the right viewer by content, plus viewers for text, images, audio, video, SVG, maps, fonts, hex, tables, markdown, archives and more. All render on the same GPU-accelerated Llimphi UI. A **meta-runtime** lets you define a new viewer from a JSON schema, with no Rust.
6
7<p align="center">
8 <img src="docs/nahual_showreel.gif" alt="nahual showreel — a Dopus-style file manager: folder tree, session tabs, icon grid with real thumbnails, and browse-and-preview with a content-dispatched viewer" width="900">
9 <br>
10 <sub>a file manager with real thumbnails + browse-and-preview, the viewer dispatched by content</sub>
11</p>
12
13## Run
14
15```sh
16cargo run --release -p nahual-shell-llimphi # the open-with shell (dispatches by content)
17cargo run --release -p nahual-file-explorer-llimphi # file tree
18cargo run --release -p nahual-image-viewer-llimphi # image viewer
19cargo run --release -p nahual-text-viewer-llimphi # text viewer
20```
21
22## Viewers
23
24`text` · `image` (PNG/JPEG/WebP) · `audio` · `video` · `svg` · `map` (geo) · `font` (TTF/OTF glyph outlines) · `hex` · `table` · `markdown` · `archive` (zip/tar) · `card` · `gallery` · `tree` — plus `nahual-viewer-core` / `nahual-source-core` / `nahual-thumb-core` and the `meta-runtime` + `meta-schema` libraries.
25
26## How dependencies work
27
28This is a clean front-door repo: it contains **only nahual's own crates**. Everything else is pulled as a git dependency —
29
30- the **Llimphi** UI framework → [`llimphi.git`](https://github.com/tawasuyu/llimphi)
31- foundational crates (content discern, media decoders, content-addressed sources, shared leaves) → the [`tawasuyu`](https://github.com/tawasuyu/tawasuyu) monorepo, the suite's source of truth.
32
33No vendoring, no duplication. First build clones those repos (cached afterwards).
34
35## Considerations
36
37- **Viewers, not editors.** To *edit* text use `nada`; to edit an image use `pineal`.
38- The media viewers decode AV1/Opus/FLAC/MP3/Vorbis/WebM natively (pure-Rust, no ffmpeg).
39- Cross-platform Llimphi UI (Linux/macOS/Windows); viewers also compile inside the Wawa kernel.
40
41## License
42
43MIT. Builds on [Llimphi](https://github.com/tawasuyu/llimphi) and the [tawasuyu](https://github.com/tawasuyu/tawasuyu) suite.
README.md
nahual
nahual (Nahuatl: companion spirit). Everyday "open-with" viewers, in Rust, on Llimphi.
nahual is the set of viewers a desktop user expects — a file shell that dispatches the right viewer by content, plus viewers for text, images, audio, video, SVG, maps, fonts, hex, tables, markdown, archives and more. All render on the same GPU-accelerated Llimphi UI. A meta-runtime lets you define a new viewer from a JSON schema, with no Rust.
<p align="center">
<img src="docs/nahual_showreel.gif" alt="nahual showreel — a Dopus-style file manager: folder tree, session tabs, icon grid with real thumbnails, and browse-and-preview with a content-dispatched viewer" width="900">
<br>
<sub>a file manager with real thumbnails + browse-and-preview, the viewer dispatched by content</sub>
</p>
Run
cargo run --release -p nahual-shell-llimphi # the open-with shell (dispatches by content)
cargo run --release -p nahual-file-explorer-llimphi # file tree
cargo run --release -p nahual-image-viewer-llimphi # image viewer
cargo run --release -p nahual-text-viewer-llimphi # text viewer
Viewers
text · image (PNG/JPEG/WebP) · audio · video · svg · map (geo) · font (TTF/OTF glyph outlines) · hex · table · markdown · archive (zip/tar) · card · gallery · tree — plus nahual-viewer-core / nahual-source-core / nahual-thumb-core and the meta-runtime + meta-schema libraries.
How dependencies work
This is a clean front-door repo: it contains only nahual's own crates. Everything else is pulled as a git dependency —
- the Llimphi UI framework →
llimphi.git
- foundational crates (content discern, media decoders, content-addressed sources, shared leaves) → the
tawasuyu monorepo, the suite's source of truth.
No vendoring, no duplication. First build clones those repos (cached afterwards).
Considerations
- Viewers, not editors. To edit text use
nada; to edit an image use pineal.
- The media viewers decode AV1/Opus/FLAC/MP3/Vorbis/WebM natively (pure-Rust, no ffmpeg).
- Cross-platform Llimphi UI (Linux/macOS/Windows); viewers also compile inside the Wawa kernel.
License
MIT. Builds on Llimphi and the tawasuyu suite.