BSIS

BSIS documentation

A modern installer framework for Windows, powered by an experimental Rust core.

BSIS (Better NSIS) explores a design-first way to build Windows installers. The long-term goal is to let developers design installation interfaces using familiar UI technologies, with a native engine handling packaging and installation operations.

Experimental prototype

BSIS core is private during development and has no public installer release or stable SDK. The Rust prototype supports file packaging, console installation, inspection, cautious uninstall, and an opt-in WebView2 GUI preview. Project-supplied custom GUIs, plugins, repair and updates are still planned.

Start building

A small, working prototype

The following commands are implemented for maintainers with access to the private repository. They build a standalone setup executable, inspect its embedded Zstandard bundle and install it to a new or existing empty directory.

cargo test --workspace --all-targets
cargo build --release -p bsis
cargo run -p bsis -- build --config examples/hello/bsis.json --runtime target/release/bsis.exe --output BSIS-Hello-Setup.exe

No runtime download at install time

A successfully built BSIS setup executable contains its Rust runtime and compressed payload. Running it does not require installing Node.js or Bun on the target computer.

How it works today

The current experiment:

  • Validates a strict versioned JSON build manifest.
  • Appends a Zstandard-compressed payload to a native Windows executable.
  • Verifies bundle and extracted file hashes with SHA-256.
  • Uses a temporary staging directory before committing a new or existing empty-folder installation.
  • Writes a receipt, creates a native Uninstall.exe and refuses to delete modified tracked files.

Read Packaging, Rust prototype and Uninstaller for implementation details.

Where BSIS is headed

A fixed HTML/CSS WebView2 GUI preview is available via Setup.exe gui, but developer-customizable screens are not implemented yet. Other proposals include a shared step engine, more compression options, Windows integration, safe extensions, and updates/repair.

Explore the Architecture, Installer UI and Roadmap for future milestones.

Documentation conventions

Features marked Implemented are present in current private Rust source; Experimental means not production-ready; Proposed identifies ideas rather than supported APIs. Use sidebar search or Ctrl+K to find examples.