Py2Native Compile custom Python into native machine code to protect proprietary code

← All posts

2026-08-24

Py2Native Pricing: Community vs Pro Edition Explained

Py2Native Pricing: Community vs Pro Edition Explained
python compiler cython code protection open source

Py2Native Pricing: Community vs Pro Edition Explained

If you are evaluating Python code protection, the real question is usually not whether you can compile your Python into native code. It is whether the free tier does enough, or whether the paid tier pays for itself. Py2Native splits that decision cleanly: the core compiler is MIT-licensed, and a proprietary Pro plugin adds license verification and string compression.

This article is written for Python developers who are shipping proprietary software and need to decide between the free Community Edition and the paid Pro Edition. It covers what each tier includes, where Pro creates measurable value, and how the upgrade path actually works in practice.

The Purchase Decision: Free vs Paid Python Code Protection

The buying decision for Py2Native starts with a simple trade-off.

Community Edition gives you the full compilation pipeline. You write ordinary Python, run one uv run py2native build command, and get a native executable or library. That alone is enough for many teams that only need to hide Python source code.

Pro Edition is a superset. It adds JWT license verification and string compression, which matter when you need to control who runs your compiled software and make the binary harder to inspect.

A useful way to frame the decision:

  • If your goal is source-code protection for internal tools, Community is often all you need.
  • If you are selling a Python-based product or deploying it to customers, Pro gives you enforcement and an extra layer of obfuscation.
  • If you are unsure, you can start with Community and add Pro later without rewriting your build.

What You Get at Each Tier

Both tiers compile your custom Python into native machine code. The difference is what happens around that core pipeline.

Community Edition (py2native)

The Community Edition is distributed as the py2native package under the MIT license. It includes:

  • Full Python-to-native compilation through Cython, hidden behind Py2Native’s own CLI.
  • uv embedding for deployment directories.
  • Cross-platform support for Windows, macOS, and Linux.
  • Executable mode and library mode.
  • Optional wheel output for compiled .pyd/.so artifacts.

A typical Community build looks like this:

uv run py2native build main.py mypkg/*.py --embed dist/app

You can also produce a library and wheel:

uv run py2native build main.py mypkg/*.py --library --wheel dist/wheels

The key point: you do not write .pyx files by hand, run Cython yourself, or manage C-extension build steps. The hard way would be to hand-write .pyx/.pxd files and configure cythonize with setuptools. Py2Native replaces that with one uv command.

Pro Edition (py2nativepro)

Pro is distributed as the proprietary py2nativepro plugin. It is a closed-source layer that plugs into the same build system as Community.

The two headline Pro features are:

  1. JWT license verification
  2. String compression

License verification uses EC P-256 keys and JWT. The workflow is:

# Generate an EC P-256 keypair
uv run py2native keygen private.pem public.pem

# Sign a JWT payload and write license.dat
uv run py2native sign --private private.pem '{"sub":"customer-123","exp":"2026-08-24T00:00:00Z"}' license.dat

# Inspect the license claims
uv run py2native show --public public.pem license.dat

Only the public key is baked into the executable. The private key never ships to customers. The elliptic-key verification is handled by compiled code in Py2Native Pro, not by third-party libraries.

For the actual build, Pro uses the same CLI with an added --license flag:

uv run py2native build main.py mypkg/*.py \
  --embed dist/app \
  --license license.dat \
  --public public.pem

The Pro plugin bakes the signature verification code and public key into the executable. In your project, a small .pxd file exposes the verification entry point that the plugin injects at build time:

# license_verify.pxd
cdef extern int py2nativepro_verify_license(const char *license_file)

Your application can then call the verification logic with the license key before running the protected code path:

# app_entry.py
cimport license_verify

def require_license(path: str) -> bool:
    return license_verify.py2nativepro_verify_license(path.encode()) == 0

if not require_license("license.dat"):
    raise SystemExit("License verification failed")

This is the one place Pro-specific declarations appear. The rest of your project remains ordinary Python.

A side-by-side comparison looks like this:

Feature Community (py2native) Pro (py2nativepro)
License MIT Proprietary
Python-to-native compilation Yes Yes
uv embedding Yes Yes
Cross-platform builds Yes Yes
JWT license verification No Yes
keygen, sign, show commands No Yes
String compression No Yes
Public key baked into binary No Yes

Cost/Benefit and ROI: Is Pro Worth It?

Community Edition is free and MIT-licensed. That makes it a straightforward choice when source protection is the only requirement.

Pro is the tier to evaluate when the business cost of unauthorized use outweighs the cost of licensing. That tends to happen in a few scenarios:

  • Commercial software vendors that need per-customer or per-seat license enforcement.
  • On-prem SaaS deployments where the Python application leaves your controlled environment.
  • Teams monetizing a Python tool and needing a lightweight JWT-based licensing mechanism without building their own verification stack.

Pro also adds string compression, which can reduce output size and make embedded strings harder to inspect. That is an additional obfuscation benefit beyond the base native compilation.

Pricing for the Pro plugin is not publicly listed in the product information. If you are evaluating Pro for a commercial product, the practical path is to contact the vendor for a quote based on your deployment volume and licensing requirements. The Community Edition gives you a risk-free way to validate the compiler pipeline before that conversation.

From an ROI perspective, the most important calculation is not the license fee. It is the cost of shipping readable Python source to a customer or competitor. If native compilation prevents even one meaningful leak or unauthorized reuse, the paid tier often justifies itself quickly.

Upgrade Path and Deployment Considerations

One of the strongest arguments for starting with Community is that the upgrade path is minimal.

Both editions are self-hosted. Compilation happens on your own infrastructure; there is no cloud build service required. You do need internet access during setup because Py2Native downloads Python distributions and libraries.

The build command you use today works with Pro tomorrow. The only change is adding the Pro plugin and the license-related flags:

# Community
uv run py2native build main.py mypkg/*.py --embed dist/app

# Pro
uv run py2native build main.py mypkg/*.py \
  --embed dist/app \
  --license license.dat \
  --public public.pem

There is no need to rewrite build scripts or move to a different packaging approach. The plugin manager dispatches to the Pro plugin during the existing build lifecycle.

A few deployment requirements apply to both tiers:

  • CPython 3.11 through 3.15, including free-threaded 3.14t and 3.15t.
  • A platform C compiler and linker: MSVC on Windows, GCC on Linux, Clang on macOS.
  • Windows 8+, manylinux2014/musl Linux, or macOS.
  • x86-64 or ARM64 CPU.

If you are deploying to Linux containers or CI runners, the same build command can be embedded into your existing automation. The practical path is to add Py2Native as a uv run step and keep the Pro plugin available in the build environment.

FAQ

Q: Is Py2Native Community Edition really free for commercial use?

A: Yes, the Community Edition is MIT-licensed, so you can use it in commercial projects without paying. The Pro Edition adds proprietary features like JWT license verification and string compression, which require a paid license.

Q: What does Py2Native Pro cost?

A: Pricing for Py2Native Pro is not publicly listed. You’ll need to contact the vendor for a quote based on your needs. The Community Edition is free and open source.

Q: Can I start with Community and upgrade to Pro later?

A: Yes, the Pro plugin integrates with the same build system. You can add the Pro plugin and use the --license flag without changing your existing Py2Native build commands.

Q: Does Pro include all Community features?

A: Yes, Pro is a superset: it includes everything in Community plus JWT license verification and string compression. The core compiler remains the same.

Conclusion: Making the Right Choice

The pricing decision comes down to what you need beyond native compilation.

Choose the Community Edition when your primary concern is hiding Python source code. It is free, MIT-licensed, and gives you the full compile pipeline without manual Cython work.

Choose the Pro Edition when you need to enforce licensing, prevent unauthorized use, or add string compression. Pro keeps the same CLI and build flow while adding JWT verification with EC P-256 keys and a public key baked into the executable.

Both paths start the same way: write plain Python and run:

uv run py2native build main.py mypkg/*.py --embed dist/app

If you have not tried Py2Native yet, start with Py2Native and see how far one command takes you. When your product reaches the point where licensing matters, the Pro plugin is there as a drop-in upgrade.

Related posts

EU label: AI-generated content