EzCompiler¶

EzCompiler is a Python framework for compiling projects to executables, packaging them as ZIP archives, and distributing them — through a single typed API.
🚀 Quick start¶
from ezcompiler import EzCompiler, CompilerConfig
config = CompilerConfig(
version="1.0.0",
project_name="MyApp",
main_file="main.py",
include_files={"files": [], "folders": []},
output_folder="dist",
)
ezcompiler = EzCompiler(config)
ezcompiler.compile_project(compiler="PyInstaller") # (1)!
ezcompiler.zip_compiled_project()
- Supported backends:
"PyInstaller","Cx_Freeze","Nuitka".
Publication is a separate CLI step, never done by the Python API:
# Publication is a separate CLI step: it reads your ezcompiler.yaml / pyproject.toml
ezcompiler publish release --release-destination disk --destination ./releases
✨ Key features¶
- Multi-backend compilation: Cx_Freeze, PyInstaller, and Nuitka.
- ZIP packaging with configurable compression.
- Publication to disk, HTTP servers, R2 or GitHub Releases with
ezcompiler publish. - Template-based generation for config, build, and version files.
- Complete Python 3.13+ type hints throughout the public API.
📚 Documentation¶
| Section | Description |
|---|---|
| Getting Started | Tutorial for a working setup in a few minutes. |
| User Guides | Task-focused configuration and operational recipes. |
| API Reference | Curated API map and auto-generated technical reference. |
| CLI Reference | Command and option reference for the CLI. |
| Examples | Copy-paste runnable scenarios. |
| Concepts | Design rationale behind the architecture and pipeline. |
| Changelog | Released versions and their changes. |
📋 Requirements¶
- Python >= 3.13
- PyYAML >= 6.0
- cx_Freeze, PyInstaller, or Nuitka (at least one backend)
⚖️ License¶
MIT. See LICENSE.