Vision & Roadmap

Why py-rizmi exists, where it's going, and the principles that keep it trustworthy.

The vision

Independent Python developers shouldn't need to run a licensing SaaS — or write crypto themselves — to get paid for their work. py-Rizmi is building the licensing layer we wished existed: offline-first, cryptographically honest, five-minute integration, zero accounts. One pip install, one command to scaffold, three lines to integrate, one command to debug any customer install anywhere in the world.

Principles

Honesty over marketing

We document exactly what local licensing stops and what it doesn't. No "unhackable" claims — trust is the product.

Offline-first

No phone-home, no account servers, no telemetry. If your customers are air-gapped, py-rizmi still works.

Detect, don't pretend

Local storage can't be made unwritable — so every byte is verified against machine-bound HMACs and signatures, and edits are caught loudly instead of silently trusted.

DX is security UX

Most "cracks" happen because devs wire validation wrong. The gate facade, scaffolder and doctor exist so the correct path is also the easy path.

Fail safe, fail loud

Tampered licenses never fall back to trials. Unverifiable revocation lists are rejected, not ignored. Errors carry canonical codes your UI can render.

Zero-dependency core

State lives in stdlib SQLite; no cloud SDKs, no vendor lock-in, no phoning home. Your customers' machines stay yours.

Shipped

ReleaseHighlights
v1.xRSA-signed JWT licenses, HWID binding, clock-tamper guard, trials, revocation lists, watchdog, PyQt6 toolkit, Typer CLI.
v2.0Per-app tamper-evident SQLite store; in-app activation (paste/file); public-key pinning self-check; multi-app namespacing; frozen-build e2e tests; swap feature removed for clarity.
v2.1LicenseGate facade + LicenseStatus; rizmi init scaffolder; rizmi doctor; rizmi app management; migrate-to-sqlite; example recipes (CLI/Tkinter/FastAPI); this documentation site.

Roadmap

Near termLater
Online activation server reference implementation (optional tier — instant revocation, server-signed time)TPM / secure-enclave binding for high-value deployments
Floating/concurrent-seat enforcement helpers (max_clients end-to-end)License reseller workflow (bulk issue + per-reseller reporting)
Feature-flag gating API (status.has_feature("pro"))GUI wizard for end-user activation you can embed
More community recipes (Django, Kivy, PySide)Plugin ecosystem around the gate interface

Join in

py-Rizmi is MIT-licensed and built in the open. Star the repo, open issues with your integration pain points, and contribute recipes — the roadmap is steered by what integrators actually hit. github.com/Ramzi-Hadrouk/py-rizmi