Client library and user-facing apps for the zlicenser licensing framework.
This is the customer side of the ecosystem. Customers use the GUI or TUI to browse the marketplace, purchase licenses from vendors, and run .zlb protected applications. The library crate handles the enrollment protocol, local license storage, hardware fingerprint collection, and the shim that decrypts and executes protected binaries without ever writing plaintext to disk.
src/ # library crate source (published to crates.io)
bin/zlicenser-tui/ # ratatui terminal app
bin/zlicenser-gui/ # Tauri 2 + SvelteKit desktop app
bindings/python/ # PyO3 + maturin
bindings/nodejs/ # napi-rs
bindings/go/ # CGo + cbindgen
xtask/ # build automation
docs/ # mdBook documentation
The workspace root Cargo.toml is both the workspace manifest and the published library crate. Everything under bin/ and bindings/ is publish = false.
Rust toolchain: install via rustup. The rust-toolchain.toml pins to a specific stable version.
The library and TUI have no extra system dependencies. The GUI needs a few more things because of Tauri.
sudo apt install -y \
libwebkit2gtk-4.1-dev libgtk-3-dev \
libayatana-appindicator3-dev librsvg2-dev pkg-config \
python3-dev python3-pip
pip3 install maturin
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt install -y nodejssudo dnf install -y \
webkit2gtk4.1-devel gtk3-devel \
libayatana-appindicator-gtk3-devel librsvg2-devel pkgconf \
python3-devel python3-pip
pip3 install maturin
sudo dnf install -y nodejsNode.js is only needed for the GUI frontend and the Node.js bindings. Python deps are only needed for the Python bindings.
Linux x86_64 only. The shim uses memfd_create + execve for in-memory execution, and hardware fingerprinting reads from Linux-specific interfaces. Windows and macOS are not in scope for this project. zlicenser-pro, a future commercial release, may support other operating systems.
- zlicenser-protocol: shared protocol, crypto, and wire formats
- zlicenser-server: server library and vendor backend
Apache-2.0, see LICENSE.