banderole

Crates.iobanderole
lib.rsbanderole
version0.2.2
created_at2025-07-24 23:35:15.061996+00
updated_at2025-11-29 09:23:23.53112+00
descriptionA cross-platform Node.js single-executable bundler
homepagehttps://github.com/zhom/banderole
repositoryhttps://github.com/zhom/banderole
max_upload_size
id1767022
size348,093
(zhom)

documentation

README

Banderole

Create cross-platform single-executables for Node.js projects. Windows is not supported.

Banderole bundles your Node.js app, all dependencies, and a portable Node binary into a single native executable. On first launch, it unpacks to a cache directory for fast subsequent executions.

Unlike Node.js SEA or pkg, banderole handles complex projects with dynamic imports and non-JavaScript files without requiring patches, but since it includes all dependencies by default, it has significantly larger filesize.

Requirements

Banderole requires the Rust toolchain to be installed on your system to build portable executables.

Installation

cargo install banderole

Usage

# Bundle a project using the project name
banderole bundle /path/to/project

# Bundle with custom output path
banderole bundle /path/to/project --output /path/to/output/executable

# Bundle with custom name
banderole bundle /path/to/project --name my-app

# Bundle with both custom output and name
banderole bundle /path/to/project --output /path/to/my-app --name my-app

Feature List

  • Support Linux, MacOS, and Windows for both x64 and arm64 architectures.
  • Support custom node.js version based on project's .nvmrc and .node-version
  • Support TypeScript projects with automatic detection of compiled output directories
  • Support workspaces (only pnpm workspaces tested)
  • Only the executable has permissions to read and execute bundled files

License

MIT

Commit count: 0

cargo fmt