https://github.com/chfoo/takecrate
Rust library for adding installer functionality to standalone binaries
https://github.com/chfoo/takecrate
Last synced: 4 months ago
JSON representation
Rust library for adding installer functionality to standalone binaries
- Host: GitHub
- URL: https://github.com/chfoo/takecrate
- Owner: chfoo
- License: mpl-2.0
- Created: 2024-10-03T08:32:45.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-11-06T20:08:26.000Z (over 1 year ago)
- Last Synced: 2025-05-11T08:17:09.232Z (9 months ago)
- Language: Rust
- Size: 147 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: .github/CONTRIBUTING.md
- License: LICENSE.txt
- Support: .github/SUPPORT.md
Awesome Lists containing this project
README
# Takecrate
Rust library for adding installer functionality to standalone binaries.
This crate enables CLI applications to be distributed as standalone binaries that can install and uninstall themselves.
[](https://crates.io/crates/takecrate)
[](https://docs.rs/takecrate)
## Quick start
```rust
let app_id = AppId::new("com.example.my-app").unwrap();
let manifest = PackageManifest::new(&app_id).with_self_exe().unwrap();
if exe_name.ends_with("_installer") {
takecrate::install_interactive(&manifest).unwrap();
}
```
## Features
This crate aims to be a safe and easy way for users to use binaries by automating the file copying and search path modification.
Supported OS families: unix (macOS and Linux), windows.
In addition, notable quality of life features include:
* Including files bundled beside the binary.
* Option for installing for the current user or for all users.
## Contributing & support
* [Contributing](https://github.com/chfoo/takecrate/blob/main/.github/CONTRIBUTING.md)
* [Support](https://github.com/chfoo/takecrate/blob/main/.github/SUPPORT.md)
## License
Copyright 2024-2025 Christopher Foo and Takecrate contributors. Licensed under Mozilla Public License 2.0