1- # 🚀 PyCompiler ARK++
1+ # PyCompiler ARK++
22
3- > Comprehensive Python compilation toolkit with modular architecture, security features, and extensible plugin system.
3+ A Qt‑based workshop to compile Python projects with a ** pre‑compilation plugin pipeline (BCASL) ** and a ** multi‑engine system** .
44
55[ ![ License: Apache-2.0] ( https://img.shields.io/badge/License-Apache%202.0-blue.svg )] ( http://www.apache.org/licenses/LICENSE-2.0 )
6- [ ![ Python 3.10+] ( https://img.shields.io/badge/python-3.10+ -blue.svg )] ( https://www.python.org/downloads/ )
6+ [ ![ Python 3.10+] ( https://img.shields.io/badge/python-3.10%2B -blue.svg )] ( https://www.python.org/downloads/ )
77
8+ ## ✨ Signature Capabilities
89
9- ## 🎯 Key Features
10+ - ** BCASL (Before Compilation Advanced System Loader)**
11+ - Pre‑compile plugins: validation, preparation, transformation
12+ - Ordering + dependencies, sandboxed execution, timeouts
13+ - Optional parallelism for independent plugins
1014
11- ### 🔧 Modular Plugin System
12- - BCASL: Pre-compilation plugins for validation, preparation, and code transformation
13- - Sandboxed execution with isolated environments
14- - Dependency management with topological sorting
15- - Parallel execution for independent plugins
15+ - ** Multi‑engine compilation**
16+ - ** PyInstaller** , ** Nuitka** , ** cx_Freeze**
17+ - Extensible architecture via ` ENGINES/ `
1618
17- ### 🏭 Multi-Engine Compilation
18- - PyInstaller: Standard Python compilation with advanced options
19- - Nuitka: High-performance compilation with optimization flags
20- - cx_Freeze: Cross-platform support with minimal configuration
21- - Extensible architecture: Add custom compilation engines
19+ - ** Workspace‑oriented UI workflow**
20+ - Select workspace + files
21+ - File filtering, exclusions via ` ARK_Main_Config.yml `
22+ - Integrated logs and progress
2223
23- ### 🛠️ Developer-Friendly SDKs
24- - Plugins_SDK: Complete plugin development framework
25- - Progress tracking: Non-blocking UI updates with detailed metrics
26- - Context management: Secure workspace and resource handling
27- - Internationalization: Async i18n with plugin overlay support
24+ - ** Dedicated tools**
25+ - ** BCASL Standalone** (plugin manager)
26+ - ** Engines Standalone** (engine manager)
2827
29- ## 🏗️ Architecture Overview
28+ - ** Customization**
29+ - QSS themes (` themes/ ` )
30+ - Translations (` languages/ ` )
3031
31- PyCompiler ARK++ provides a modular, extensible platform for Python compilation with comprehensive tooling and security features.
32-
33- ### Core Components
34-
35- #### 🔧 BCASL (Before Compilation Advanced System Loader)
36- - Pre-compilation plugins for validation, preparation, and code transformation
37- - Location: ` Plugins/<plugin_id>/ ` with ` __init__.py `
38- - Sandboxed execution with resource limits and timeouts
39- - Type-checked interfaces with comprehensive error handling
40- - Dependency resolution with topological sorting
41- - Parallel execution for independent plugins
42-
43- #### 🏭 Multi-Engine Compilation
44- - PyInstaller: Industry-standard with advanced options and auto-plugin detection
45- - Nuitka: High-performance compilation with optimization flags
46- - cx_Freeze: Cross-platform support with minimal configuration
47- - Extensible: Plugin architecture for additional compilation engines
48-
49- - Built-in plugins: Code signing, SBOM generation, integrity checking
50- - Isolated execution environment with audit logging
51- - CI/CD integration and automated workflows
32+ ---
5233
5334## 🚀 Quick Start
5435
@@ -62,170 +43,117 @@ source .venv/bin/activate # Linux/macOS
6243# or
6344.venv\S cripts\a ctivate # Windows
6445
65- pip install -r requirements.txt -c constraints.txt
66-
67- # Install Click for enhanced CLI (optional but recommended)
68- pip install click
69-
70- # Install development tools (optional)
71- pip install -e " .[dev]"
72-
73- # Setup pre-commit hooks (recommended)
74- pre-commit install
46+ pip install -r requirements.txt
7547```
7648
77- ### Basic Usage
78-
79- #### GUI Application
49+ ### Launch the Main App
8050
8151``` bash
82- # Run the main GUI application
83- python main.py
84-
85- # Or via pycompiler_ark.py
8652python pycompiler_ark.py
53+ # or
54+ python -m pycompiler_ark
8755```
8856
89- #### Command-Line Interface
57+ ### CLI Entry (same binary)
9058
9159``` bash
92- # Show help
9360python pycompiler_ark.py --help
94-
95- # Show version
9661python pycompiler_ark.py --version
62+ python pycompiler_ark.py --info
9763
98- # Launch main application
99- python pycompiler_ark.py main
100-
101- # Launch BCASL standalone (plugin manager)
64+ # BCASL standalone (GUI)
10265python pycompiler_ark.py bcasl
10366python pycompiler_ark.py bcasl /path/to/workspace
10467
105- # Launch Engines standalone (compilation engine manager )
68+ # Engines standalone (GUI )
10669python pycompiler_ark.py engines
10770python pycompiler_ark.py engines /path/to/workspace
108- python pycompiler_ark.py engines --dry-run # List available engines
71+ python pycompiler_ark.py engines --dry-run
10972```
11073
111- #### BCASL Standalone Module
112-
113- ``` bash
114- # Launch BCASL directly
115- python -m bcasl.only_mod
116-
117- # Launch with workspace
118- python -m bcasl.only_mod /path/to/workspace
119- python -m bcasl.only_mod .
120- ```
74+ ---
12175
122- ### Development Setup
76+ ## 🧭 Workflow (4 steps)
12377
124- ``` bash
125- # Install all development dependencies
126- pip install -e " .[dev,security,docs]"
78+ 1 . ** Select a workspace**
79+ 2 . ** Add / filter files** to compile
80+ 3 . ** Configure the engine** (PyInstaller / Nuitka / cx_Freeze)
81+ 4 . ** Build** and follow logs + progress
12782
128- # Run quality checks
129- ruff check . # Linting
130- black --check . # Formatting
131- mypy . # Type checking
132- bandit -r . # Security scanning
83+ ---
13384
134- # Run tests with coverage
135- pytest --cov=Core --cov=Plugins_SDK --cov=engine_sdk --cov=bcasl
85+ ## 🔁 BCASL Pipeline (quick view)
86+
87+ ``` text
88+ Workspace
89+ │
90+ ├─ Load bcasl.yml
91+ ├─ Discover plugins (Plugins/)
92+ ├─ Enable / order / priorities
93+ ├─ Sandboxed execution (timeouts, optional parallelism)
94+ ▼
95+ Compilation (PyInstaller / Nuitka / cx_Freeze)
13696```
13797
138- ## 🌍 Platform Support
98+ ---
13999
140- ### Officially Supported Platforms
141- | Platform | Versions | Architecture | Status |
142- | ----------| ----------| --------------| --------|
143- | Ubuntu | 20.04, 22.04, 24.04 LTS | x64 | ✅ Fully Supported |
144- | Windows | 10, 11 | x64 | ✅ Fully Supported |
100+ ## 🧩 BCASL Standalone (Plugins)
145101
146- ### Not Supported
147- - macOS: Not officially supported (code contains macOS-specific utilities for future compatibility, but no active support)
102+ ``` bash
103+ python -m OnlyMod.BcaslOnlyMod --gui
104+ python -m OnlyMod.BcaslOnlyMod --list-plugins
105+ python -m OnlyMod.BcaslOnlyMod --run --workspace /path/to/workspace
106+ ```
148107
149- ### Python Versions
150- - 3.10: ✅ Minimum supported version
151- - 3.11: ✅ Recommended (performance optimizations)
152- - 3.12: ✅ Latest stable support
153- - 3.13: 🧪 Experimental support
108+ ## ⚙️ Engines Standalone
154109
155- See [ SUPPORTED_MATRIX.md] ( SUPPORTED_MATRIX.md ) for detailed compatibility information.
110+ ``` bash
111+ python -m OnlyMod.EngineOnlyMod
112+ python -m OnlyMod.EngineOnlyMod --list-engines
113+ python -m OnlyMod.EngineOnlyMod --check-compat nuitka
114+ python -m OnlyMod.EngineOnlyMod --engine nuitka -f script.py --dry-run
115+ ```
156116
157- ## 📚 Documentation
117+ ---
158118
159- ### User Guides
160- - [ About SDKs] ( docs/About_Sdks.md ) - Overview of available SDKs
161- - [ Create a Building Engine] ( docs/how_to_create_an_engine.md ) - Engine development guide
162- - [ Create a BC Plugin] ( docs/how_to_create_a_BC_plugin.md ) - Pre-compile plugin guide
163- - [ BCASL Configuration] ( docs/BCASL_Configuration.md ) - BCASL plugin system configuration
119+ ## 📝 Configuration
164120
165- ### BCASL Standalone Module
166- - [ BCASL Standalone README] ( bcasl/only_mod/README.md ) - Complete BCASL standalone documentation
121+ - ** ` ARK_Main_Config.yml ` ** (workspace root)
122+ - Inclusion/exclusion patterns
123+ - Plugin options (BCASL)
167124
168- ### Engines Standalone Module
169- - [ Engines Standalone README] ( Core/engines_loader/engines_only_mod/README.md ) - Complete Engines standalone documentation
125+ - ** ` bcasl.yml ` ** (workspace root)
126+ - Enable/disable plugins
127+ - Order and timeouts
170128
171- ### Developer Documentation
172- - [ Contributing] ( CONTRIBUTING.md ) - How to contribute to the project
173- - [ ARK Configuration] ( docs/ARK_Configuration.md ) - Main application configuration
129+ ---
174130
175- ### Operations
176- - [ Support Matrix] ( SUPPORTED_MATRIX.md ) - Platform and version support
131+ ## 🗂️ Project Layout
177132
178- ## 🤝 Contributing
133+ - ` Core/ ` — main UI logic
134+ - ` ENGINES/ ` — built‑in engines
135+ - ` EngineLoader/ ` — discovery/registry
136+ - ` Plugins/ ` — BCASL plugins
137+ - ` Plugins_SDK/ ` — plugin SDK
138+ - ` bcasl/ ` — BCASL core
139+ - ` OnlyMod/ ` — standalone tools (BCASL / Engines)
140+ - ` ui/ ` — Qt Designer UI
141+ - ` languages/ ` — translations
142+ - ` themes/ ` — QSS themes
179143
180- We welcome contributions from the community! PyCompiler ARK++ follows structured development practices.
144+ ---
181145
182- ### Development Process
183- 1 . Fork the repository and create a feature branch
184- 2 . Develop with pre-commit hooks ensuring quality
185- 3 . Test across supported platforms and Python versions
186- 4 . Document changes and update relevant guides
187- 5 . Submit a pull request with comprehensive description
146+ ## 🧪 Development
188147
189- ### Quality Standards
190- - Code Coverage: Minimum 80% for new features
191- - Type Hints: Required for all public Plugins
192- - Security Review: Automated and manual security checks
193- - Documentation: User and developer documentation updates
194- - Testing: Unit, integration, and security tests
148+ ``` bash
149+ ruff check .
150+ black --check .
151+ mypy .
152+ pytest
153+ ```
195154
196- See [ CONTRIBUTING.md ] ( CONTRIBUTING.md ) for detailed guidelines.
155+ ---
197156
198157## 📄 License
199158
200- This project is licensed under the ** Apache License 2.0** .
201-
202- ## 🆘 Support
203-
204- ### Community Support
205- - GitHub Issues: Bug reports and feature requests
206- - GitHub Discussions: Community questions and ideas
207- - Documentation: Comprehensive guides and references
208-
209- ### Security Issues
210- For security vulnerabilities, please follow our Security Policy:
211- - Email: ague.samuel27@gmail.com
212-
213- ## 🎉 What's New
214-
215- PyCompiler ARK++ represents a comprehensive upgrade with:
216-
217- ### Key Improvements
218- - Modular architecture: Extensible plugin system with BCASL
219- - Enhanced security: Comprehensive scanning and code signing
220- - Complete documentation: Guides for all major features
221- - Modern tooling: Latest Python practices and tools
222- - Multi-platform support: Ubuntu, Windows
223-
224- ### Breaking Changes
225- - Python 3.10+: Dropped support for Python 3.9 and below
226- - New plugin system: BCASL replaces legacy plugin architecture
227- - Enhanced Plugins: Backward compatibility with deprecation warnings
228-
229- ---
230-
231- PyCompiler ARK++ — Comprehensive Python compilation toolkit with modular architecture and security features.
159+ Apache‑2.0 (see ` LICENSE ` ).
0 commit comments