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
Getting started
Requirements and a complete Windows build, install and uninstall workflow.
Configuration
Learn the actual version 1 JSON manifest and its validation rules.
CLI reference
Exact Rust commands, arguments and expected behavior.
Security model
Understand integrity checks, safe uninstall and current limitations.
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.