https://github.com/RozhakDev/GoPyMagix
GoPyMagix: Sebuah tool inovatif untuk mengamankan, mengenkripsi, dan menyematkan skrip Python ke dalam Go binaries. Memberikan keamanan penuh, portabilitas tinggi, serta kemudahan deployment di berbagai platform.
https://github.com/RozhakDev/GoPyMagix
cgo code-protection compiler dev-tools go golang python python-embedding python-to-go
Last synced: 6 months ago
JSON representation
GoPyMagix: Sebuah tool inovatif untuk mengamankan, mengenkripsi, dan menyematkan skrip Python ke dalam Go binaries. Memberikan keamanan penuh, portabilitas tinggi, serta kemudahan deployment di berbagai platform.
- Host: GitHub
- URL: https://github.com/RozhakDev/GoPyMagix
- Owner: RozhakDev
- License: mit
- Created: 2023-03-05T23:40:50.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2025-08-23T05:48:11.000Z (7 months ago)
- Last Synced: 2025-08-24T08:52:39.312Z (7 months ago)
- Topics: cgo, code-protection, compiler, dev-tools, go, golang, python, python-embedding, python-to-go
- Language: Python
- Homepage: https://trakteer.id/rozhak_official/tip
- Size: 727 KB
- Stars: 13
- Watchers: 1
- Forks: 7
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# GoPyMagix: Tool Pengamanan Skrip Python 🚀

[MIT License](https://opensource.org/licenses/MIT) | [Python Downloads](https://www.python.org/downloads/) | [Go Downloads](https://golang.org/dl/)
**Sebuah tool canggih untuk menyematkan skrip Python ke dalam Go binaries, mengamankan skrip Python Anda dengan mengkompilasinya menjadi standalone Go binaries.**
## 🎯 Ringkasan
GoPyMagix adalah *tool* inovatif yang menjembatani Python dan Go dengan menyematkan skrip Python langsung ke dalam *Go binaries*. Pendekatan ini memberikan keamanan, portabilitas, dan kesederhanaan *deployment* yang lebih baik untuk aplikasi Python. Kode Python Anda dienkripsi, disematkan, dan dieksekusi di dalam *Go binary* yang telah dikompilasi, sehingga sulit untuk direkayasa balik sambil mempertahankan fungsionalitas penuh.
## ✨ Fitur
- **📊 *Logging* Terperinci**: Umpan balik proses *build* yang komprehensif dengan informasi waktu.
- **🔐 Enkripsi Skrip**: Mengenkripsi skrip Python secara otomatis menggunakan kompresi zlib dan *encoding* base64.
- **🔧 Integrasi Mulus**: Menyematkan kode Python terenkripsi ke dalam templat Go dengan *C-bindings*.
- **⚡ Kompilasi Cepat**: Proses *build* yang efisien dengan laporan kemajuan yang terperinci.
- **🎯 Lintas Platform**: Mendukung berbagai sistem operasi dan arsitektur.
- **📦 *Standalone Binaries***: Membuat *executable* mandiri tanpa dependensi eksternal.
- **🛠️ Konfigurasi Fleksibel**: Versi Python yang dapat disesuaikan, direktori *output*, dan opsi *build*.
- **🔍 Opsi Penyimpanan *Source***: Opsi untuk menyimpan *source code* Go yang dihasilkan untuk keperluan *debugging*.
## 📋 Prasyarat
Sebelum menggunakan GoPyMagix, pastikan Anda telah menginstal yang berikut:
- **Python 3.11+** - Diperlukan untuk menjalankan *build tool*.
- **Go 1.19+** - Diperlukan untuk mengkompilasi *binary* akhir.
- **C Compiler** - Diperlukan untuk *Python C-bindings* (GCC, Clang, atau MSVC).
- **Python Development Headers** - Diperlukan untuk menyematkan *interpreter* Python.
### Persyaratan Spesifik Sistem
#### Linux/Ubuntu
```bash
sudo apt-get update
sudo apt-get install python3-dev build-essential
```
#### macOS
```bash
xcode-select --install
brew install python@3.11
```
#### Windows
- Instal Visual Studio Build Tools atau Visual Studio Community.
- Pastikan Python diinstal dengan *development headers*.
## 🚀 Instalasi
1. **Clone repositori:**
```bash
git clone https://github.com/RozhakDev/GoPyMagix.git
cd GoPyMagix
```
2. **Verifikasi prasyarat:**
```bash
python3 --version # Harus 3.11+
go version # Harus 1.19+
```
3. **Buat skrip build dapat dieksekusi (Linux/macOS):**
```bash
chmod +x scripts/build
```
## 🏃 Mulai Cepat
1. **Buat skrip Python sederhana:**
```python
# hello.py
def main():
print("Halo dari GoPyMagix!")
return "Sukses!"
if __name__ == "__main__":
main()
```
2. **Bangun *binary*:**
```bash
python3 scripts/build hello.py
```
3. **Jalankan *binary* yang telah dikompilasi:**
```bash
./dist/hello
```
## 📖 Penggunaan
### Penggunaan Dasar
```bash
python3 scripts/build [options]
```
### Opsi Baris Perintah
| Opsi | Singkat | Deskripsi | *Default* |
|:--------------- |:------- |:----------------------------------------------- |:----------------- |
| `--output-dir` | `-o` | Direktori *output* untuk *binary* yang dibangun | `dist` |
| `--name` | `-n` | Nama kustom untuk *binary output* | Nama *file* skrip |
| `--py-version` | | Versi Python target untuk *C-bindings* | `3.13` |
| `--keep-source` | | Pertahankan *source code* Go yang dihasilkan | `false` |
### Contoh
**Build dasar:**
```bash
python3 scripts/build examples/eternal_love.py
```
**Direktori dan nama *output* kustom:**
```bash
python3 scripts/build my_script.py -o build -n my_app
```
**Tentukan versi Python dan simpan *source***:
```bash
python3 scripts/build app.py --py-version 3.12 --keep-source
```
**Build dengan semua opsi:**
```bash
python3 scripts/build src/main.py \
--output-dir release \
--name production_app \
--py-version 3.11 \
--keep-source
```
## 📁 Struktur Proyek
```
GoPyMagix/
├── src/
│ └── gopymagix/
│ ├── __init__.py
│ ├── core/
│ │ ├── __init__.py
│ │ ├── builder.py # Logika orkestrasi utama
│ │ ├── compiler.py # Penanganan kompilasi Go
│ │ └── encoder.py # Utilitas enkripsi skrip
│ └── resources/
│ └── template.go # Template binary Go
├── scripts/
│ └── build # Skrip build CLI
├── examples/
│ └── ... # Contoh skrip Python
├── dist/ # Direktori output (dibuat saat build)
├── README.md
├── LICENSE
└── .gitignore
```
## 🔧 Cara Kerja
GoPyMagix mengikuti proses *build* tiga tahap:
### Tahap 1: Enkripsi Skrip
- Membaca skrip Python masukan.
- Mengompresi kode menggunakan kompresi zlib.
- Meng-*encode* data terkompresi menggunakan *encoding* base64.
- Mengukur dan melaporkan ukuran *file* asli.
### Tahap 2: Pembuatan *Source Code* Go
- Memuat templat Go dari `resources/template.go`.
- Menyuntikkan kode Python terenkripsi ke dalam templat.
- Mengonfigurasi *C-bindings* spesifik versi Python.
- Menghasilkan *source code* Go yang lengkap.
### Tahap 3: Kompilasi *Binary*
- Mengkompilasi *source code* Go yang dihasilkan menggunakan *compiler* Go.
- Menautkan dengan pustaka C Python.
- Membuat *binary executable* yang mandiri.
- Menerapkan izin *file* yang benar dan memindahkannya ke direktori *output*.
## 💡 Contoh
Contoh-contoh yang relevan dapat ditemukan di dalam direktori `examples/`, seperti `eternal_love.py`, `eternal_rindu.py`, dan `silent_love.py`.
## ⚙️ Konfigurasi
### Kompatibilitas Versi Python
GoPyMagix mendukung beberapa versi Python melalui parameter `--py-version`:
- **Python 3.13** (*default*)
- **Python 3.12**
- **Python 3.11**
### Optimasi *Build*
Untuk *build* produksi, pertimbangkan praktik-praktik berikut:
1. **Gunakan versi Python spesifik** untuk memastikan konsistensi di seluruh lingkungan.
2. **Aktifkan penyimpanan *source*** selama pengembangan untuk *debugging*.
3. **Pilih nama *binary* yang bermakna** untuk manajemen *deployment* yang lebih baik.
4. **Atur direktori *output*** berdasarkan lingkungan (*dev*, *staging*, *prod*).
## 🤝 Kontribusi
Kami menyambut baik kontribusi untuk GoPyMagix! Berikut cara Anda dapat membantu:
### Pengaturan Pengembangan
1. ***Fork* dan *clone* repositori.**
2. **Buat *virtual environment*:**
```bash
python3 -m venv venv
source venv/bin/activate # Di Windows: venv\Scripts\activate
```
3. **Instal dependensi pengembangan.**
4. **Buat perubahan Anda dan uji secara menyeluruh.**
5. **Kirim *pull request* dengan deskripsi yang jelas.**
### Gaya Kode
- Ikuti PEP 8 untuk kode Python.
- Gunakan nama variabel dan fungsi yang bermakna.
- Tambahkan *docstrings* untuk semua fungsi dan kelas publik.
- Sertakan *type hints* jika sesuai.
## 📄 Lisensi
Proyek ini dilisensikan di bawah Lisensi MIT - lihat *file* [LICENSE](LICENSE) untuk detailnya.