English · 简体中文 · 繁體中文 · 日本語 · 한국어 · Français · Русский · Español
Shun packages the delivery half of shipping desktop software. One
config document — the app's own Cargo.toml ([package.metadata.shun],
the cargo-deb / cargo-wix pattern) — drives the build CLI and the
runtime shell:
- a payload packed once, embedded into a single-file installer or carried as a sidecar;
- a flow — pick a mode, pick a target, stream real progress;
- pluggable targets:
install— NSIS-like registration, per platform: Windows ARP entries, shortcuts (AUMID-stamped), Explorer context-menu verbs, deep links, per-user or machine-wide (self-elevating); Linux.desktoplaunchers with desktop actions; macOS.appcompletion plus Launch Services — and a portable mode that writes no system state anywhere;flash— write an image to a block device with post-write verification.
The wizard itself is a declarative pipeline
(mode | scope | license | content | install, freely ordered), its
install pane shows a real phase-weighted progress bar and a collapsible
terminal logging every file operation — verbosity configurable via
shell.log-level.
On Windows the shell has two faces: a hikari WebView UI and an embedded
egui fallback that needs no WebView2 at all — same flow, same
manifest (--fallback forces it). A fixed-version WebView2 runtime can
ride inside the payload, one copy shared by the shell and the installed
app.
Example
One demo covers delivery end to end — a real Tauri 2 payload
(demo-app/), an installer shell built on
@celestia-island/hikari
(shell/), one manifest:
Full field reference: configuration guide (简体中文).
Status
Current release: 0.2.1. The crate settles against three real consumers in the celestia ecosystem — the WoWSP installer shell, shittim-chest local, and the evernight image flasher. APIs track the three consumers between minor versions — expect additive changes from their integration feedback.
Structure
| Path | Role |
|---|---|
src/config.rs |
Config schema + [package.metadata.shun] loader |
src/flow.rs |
Flow model — progress and log events the shell renders |
src/payload.rs |
Payload pack / manifest / streamed extraction |
src/targets/ |
Install (Windows/Linux/macOS registration) and flash targets |
demo-app/ |
ShunDemo — the Tauri 2 payload app (sample UI, delivery manifest) |
shell/ |
Installer shell: hikari UI (Tauri) + egui offline fallback |
docs/ |
Guides and design notes, per locale |
Development
Work lands on master through squash-merged PRs from feat/* / fix/*
branches. See AGENTS.md for the full conventions.
License
SySL-1.0 — see LICENSE.