12 stable releases
1.5.0 | Sep 1, 2024 |
---|---|
1.4.0 | Jul 21, 2024 |
1.3.7 | Sep 19, 2023 |
1.3.6 | Aug 25, 2023 |
1.3.3 | May 19, 2023 |
#24 in Math
140,163 downloads per month
Used in 76 crates
(14 directly)
27KB
283 lines
Self-Replace: A Utility For Self Replacing Executables
self-replace
is a crate that allows binaries to replace themselves with newer
versions or to uninstall themselves. On Unix systems this is a simple feat, but
on Windows a few hacks are needed which is why this crate exists.
This is a useful operation when working with single-executable utilties that want to implement a form of self updating or self uninstallation.
For details about the implementation refer to the documentation.
If you are looking for some higher level update logic, have a look at
self_update
which uses self-replace
under the hood but provides automatic updating from GitHub releases or
other distribution channels. Note that self_update
is maintained by
other maintainers.
Uninstall
To uninstall a binary, use self_delete
.
self_replace::self_delete()?;
Updating
To replace a binary for updating, use self_replace
.
let new_binary = "/path/to/new/binary";
self_replace::self_replace(&new_binary)?;
std::fs::remove_file(&new_binary)?;
License and Links
- Documentation
- Issue Tracker
- Examples
- License: Apache-2.0
Dependencies
~2–11MB
~132K SLoC