An open API service indexing awesome lists of open source software.

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

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.

[![Crates.io Version](https://img.shields.io/crates/v/takecrate)](https://crates.io/crates/takecrate)
[![docs.rs](https://img.shields.io/docsrs/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