Astra
๐ Fast, reliable and easy-to-use js-to-exe compiler.
Why Astra?
Astra is (probably) the best compiler available on npm.
Average exe is ~70-80MB (depends on your code) so it's lighter than most compilers
Using upx you can go down up to ~30MB
It's aiming to compile servers (express, fastify) or CLIs (commander) so it's not replacement of electron.
For now it only compiles windows applications. (I'm working on macOS and linux)
Features
-
Different than the others - Astra is a new approach to compiling JavaScript/TypeScript applications. It uses a different method than other compilers like pkg or nexe.
-
Compile newest versions of Node.js - Astra supports the latest Node.js versions.
-
Fast build time - Powered by esbuild, Astra ensures the fastest possible compilation speed.
-
Improved support for ECMAScript - Astra supports compiling ESM-based applications, with workarounds for limitations in Node.js SEA.
-
Delightful DX - With signale, inquirer and chalk, Astra provides a great developer experience.
-
Standalone Executable - Generates a single
.exeor binary file that includes all dependencies. -
Make exe your own - Modify metadata (icon, name, version, etc.) of the generated executable.
-
Future-proof - Made with trusted, constantly evolving tools.
Compared to others
| Name | astra | pkg | nexe |
|---|---|---|---|
| Latest supported version | Node 24 | Node 18 | Node 14 |
| Supports ESM | โ | โ | โ |
| Built-in metadata edit | โ | โ | โ |
| Output size | ~75MB | ~90MB | ~90MB |
| Bundles code | โ | โ | โ |
| Building Speed | โก Fast | โกโก Very Fast | โกโก Very Fast |
| Stars | |||
| Difficulty | ๐ข Easy | ๐ก Medium | ๐ก Medium |
| Maintained | โ | โ (Archived) | ๐ก Low activity |
| TypeScript Support | โ | โ (requires manual building) | โ (requires manual building) |
Contributing
๐ค I welcome pull requests! Every contribution will be reviewed and appreciated - even small fixes.
Getting Started
Install Astra globally using Yarn or npm:
# npm npm i -g astra-cli # yarn (classic) yarn global add astra-cli # pnpm pnpm add -g astra-cli # for one project only # npm npm i --save-dev astra-cli # yarn yarn add --dev astra-cli # pnpm pnpm add -D astra-cli
Then, compile your JavaScript/TypeScript project:
astra build src/index.js
For more options, run:
astra --help
How it works?
- Code is checked and bundled with esbuild,
- Then astra is generating blob which will be injected into node.exe binary,
- Next astra is editing metadata of your binary (adding icon, copyright),
- And finally postject injects blob into final executable.
License
Astra is licensed under the MIT License.
Made with โค๏ธ by QwertyCodeQC
