Skip to content

devpotatoes/zest

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Zest

A modern, developer friendly alternative to legacy installers written in Rust.

Zest is a system utility designed to redefine how applications are deployed and installed. It serves as a modern alternative to legacy installers like Inno Setup, which often require deep research and complex, outdated scripting just to get started.

Documentation

For full installation guides and configuration, please visit this documentation: doc.md

Why Zest ?

Traditional installers haven't changed much in 20 years. Zest breaks that cycle by focusing on three core pillars:

  • Developer simplicity: Skip the archaic configuration scripts. Zest uses a single JSON file to deplay your app faster.

  • Rust & Tauri reliability: Built with Rust and Tauri v2, Zest ensures memory safe operations and high execution speeds with a minimal binary footprint.

  • User experience: Forget the "Windows 95 style" wizards. With Shadcn UI components, your users experience a professional, modern installation process that matches the quality of your software.

Support

OS Windows Linux MacOS
Version 1.0.0 X X

For now only Winwdows is supported.

Project architecture

Zest is divided into 3 parts :

  • zest-cli: The core tool used by the developer to configure and package their application for deployment.

  • zest-installer: The pre-built installer binary that reads the overlay embedded by zest-cli and handles the installation process on the user's machine.

  • zest-uninstaller: The pre-built uninstaller binary, linked to the installed application, responsible for cleanly removing all traces of the program from the system.

Why pre-built ?

Each Tauri project requires a significant set of dependencies and can be heavy to build. Instead of requiring developers to clone the repository and compile everything themselves, Zest ships with pre-built versions of the installer and uninstaller.

How it works

The developer uses zest-cli to embed a configuration overlay directly into those pre-built .exe files. At runtime, the installer and uninstaller read their own binary to parse this overlay and display the correct, customized values, no external config files required.

Security

Zest’s security is designed to protect sensitive data while minimizing the application's attack surface on the host environment.

Cryptographic payload protection

Sensitive data within Zest Archives is protected using AES-256-GCM.

  • Confidentiality: Payloads are encrypted with a 256-bit key, the current standard for high-security data at rest.

  • Authenticated encryption: Unlike basic AES modes, GCM provides built-in integrity verification. It generates an authentication tag for every payload, if even a single bit is tampered with or corrupted during transit, the decryption process will fail immediately, preventing the execution of compromised data.

Principle of least privilege

By leveraging the Tauri v2 security model, Zest enforces strict isolation between the user interface and the operating system :

  • Hardened IPC The frontend has no direct access to the system. All critical operations (registry edits, file I/O) are handled via a secure, monitored Inter Process Communication (IPC) bridge to the Rust backend.

  • Granular scoping: The backend is configured with an explicit "allow-list." It only possesses the permissions required to interact with specific registry hives and application directories, significantly reducing the impact of any potential vulnerability.

Windows integration

Zest supports Windows Registry key management so your application is registered as a proper system installation, visible in Settings -> Installed apps like any native program.

Zest also supports Desktop shortcut creation upon installation.

Uninstallation

The uninstaller is bundled with the application at install time. It cleanly removes all files, registry entries, and shortcuts created during installation, restoring the system to its original state.

Future updates

Zest is actively developed and has a lot of room to grow. Planned improvements include :

  • Support for additional task types.
  • Linux and MacOS builds.
  • Multilingual support for the UI
  • And much more...

If there is a feature you need, a bug you encountered, or simply an idea you think could improve Zest, feel free to open an issue. Every piece of feedback directly shapes the direction of the project.

If Zest has saved you time or made your deployment easier consider leaving a ⭐ on the repository. It is the simplest way to support the project and help keeping it alive and maintained.

Preview

About

A modern, developer friendly alternative to legacy installers written in Rust.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors