zlicenser
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.
What's in this repo
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.
Building
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.
Ubuntu
|
Fedora
Node.js is only needed for the GUI frontend and the Node.js bindings. Python deps are only needed for the Python bindings.
Platform
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.
Related repositories
- zlicenser-protocol: shared protocol, crypto, and wire formats
- zlicenser-server: server library and vendor backend
License
Apache-2.0, see LICENSE.