respect

🛠ïļ Panduan Pengembang & Kompilasi Source Code

Dokumentasi ini ditujukan bagi para pengembang (developers) dan kontributor yang ingin memahami struktur kode, mengompilasi binary Respect langsung dari source code (clean build), serta memanfaatkan pipeline automasi CI/CD.


1. Prasyarat Sistem & Alat (Tooling)

Sebelum melakukan kompilasi, pastikan lingkungan pengembangan Windows Anda telah memenuhi syarat berikut:


2. Mengambil Source Code

# Clone repositori Respect
git clone https://github.com/milio48/respect.git
cd respect

3. Kompilasi Otomatis via scripts/build.ps1

Cara termudah dan paling konsisten untuk mengompilasi seluruh varian binary adalah menggunakan skrip otomasi PowerShell yang telah disediakan di folder scripts/:

# Menampilkan bantuan parameter skrip
Get-Help .\scripts\build.ps1 -Detailed

Opsi Target Build

Perintah PowerShell Output Executable Mode Engine Deskripsi
.\scripts\build.ps1 -Target modern dist/respect/respect.exe Slim (Dev) Kompilasi kilat (~2 detik); menyalin blink.dll ke samping binary.
.\scripts\build.ps1 -Target modern -Embed dist/respect/respect.exe Standalone Single-File Engine Chromium 132 dikompresi ZSTD (level 19) dan ditanamkan ke dalam .exe (~31 MB).
.\scripts\build.ps1 -Target lite dist/respect-lite/respect-lite.exe Slim (Dev) Kompilasi binary ramping tanpa embed (~19 MB).
.\scripts\build.ps1 -Target lite -Embed dist/respect-lite/respect-lite.exe Standalone Single-File Engine Miniblink 49 dikompresi ZSTD (level 19) dan ditanamkan ke dalam .exe (~32 MB).
.\scripts\build.ps1 -Target lite-x86 -Embed dist/respect-lite/respect-lite-x86.exe Standalone 32-bit Engine Miniblink 49 x86 dikompresi ZSTD (~30 MB).
.\scripts\build.ps1 -Target all -Embed Semua varian di atas + Demo Apps Full Standalone Membangun seluruh varian + demo-stress-testing.exe & demo-stress-testing_lite.exe untuk persiapan rilis resmi.

Parameter Tambahan Skrip build.ps1


4. Kompilasi Manual Menggunakan Perintah Go

Jika Anda lebih memilih menjalankan perintah go build secara langsung dari terminal:

🌟 Respect Modern (Chromium 132)

A. Mode Single-File Mandiri (Sama seperti Rilis Resmi):

go build -tags "v132,embed132" -ldflags="-s -w -H windowsgui -X respect-app/internal/version.AppVersion=1.0.0" -o respect.exe .

B. Mode Slim (Pengembangan Cepat):

# Hasil binary (~3.4 MB) membutuhkan blink.dll di folder yang sama
go build -tags v132 -ldflags="-s -w -H windowsgui" -o respect.exe .

A. Mode Single-File Mandiri (Terkompresi ZSTD ~32 MB):

# 1. Kompresi DLL engine ke assets/ (jika belum ada)
go run scripts/compress_dll.go lite

# 2. Build single-file 64-bit
$env:GOARCH = "amd64"
go build -tags "slim,embed49" -ldflags="-s -w -H windowsgui -X respect-app/internal/version.AppVersion=1.0.0" -o respect-lite.exe .

# 3. Build single-file 32-bit (x86)
$env:GOARCH = "386"
go build -tags "slim,embed49" -ldflags="-s -w -H windowsgui -X respect-app/internal/version.AppVersion=1.0.0" -o respect-lite-x86.exe .
$env:GOARCH = "amd64"

B. Mode Slim (Pengembangan Cepat):

go build -tags slim -ldflags="-s -w -H windowsgui" -o respect-lite.exe .

Penjelasan Linker Flags (-ldflags):


5. Struktur Pohon Direktori Repositori

respect/
├── .github/
│   └── workflows/
│       └── release.yml          # Pipeline CI/CD GitHub Actions untuk rilis biner otomatis
├── assets/
│   ├── icon-full.png            # Aset grafis dokumentasi (Modern)
│   ├── icon-lite.png            # Aset grafis dokumentasi (Lite)
│   ├── respect-full.ico         # Icon Windows PE resmi untuk Respect Modern
│   ├── respect-lite.ico         # Icon Windows PE resmi untuk Respect Lite
│   ├── respect-stress.ico       # Icon Windows PE resmi untuk Demo Stress Testing
│   ├── blink.dll.zst            # Engine Chromium 132 terkompresi ZSTD (~23.36 MB)
│   ├── miniblink_49_x64.dll.zst # Engine Miniblink 49 x64 terkompresi ZSTD (~14.23 MB)
│   ├── miniblink_49_x86.dll.zst # Engine Miniblink 49 x86 terkompresi ZSTD (~12.05 MB)
│   ├── rcedit.exe               # Utilitas stamping resource PE Win32 (embedded)
│   └── workflow-thumbnail.jpg   # Banner alur kerja Respect
├── docs/                        # Dokumentasi Markdown resmi untuk GitHub Pages
│   ├── index.md                 # Halaman utama / daftar isi dokumentasi
│   ├── 1-panduan-penggunaan.md  # Panduan GUI Builder & CLI lengkap
│   ├── 2-perbandingan-edisi.md  # Komparasi Modern vs Lite & 88 Standar Web
│   ├── 3-arsitektur-virtual-host.md # Virtual Host in-memory & enkripsi V2
│   ├── 4-lifecycle.md           # Siklus hidup internal, thread loop & divergence
│   ├── 5-panduan-pengembang.md  # Dokumen panduan kompilasi ini
│   └── 6-kompatibilitas-dan-batasan-engine.md # Standar web, media native & batasan
├── internal/
│   ├── builder/                 # Subsystem GUI Builder
│   │   ├── builder_v132.go      # Adapter GUI untuk engine Chromium 132
│   │   ├── builder_v49.go       # Adapter GUI untuk engine Miniblink 49
│   │   └── static/              # Frontend Web Builder mandiri (HTML/CSS/JS)
│   │       ├── index.html       # UI form, dialog folder/file, dual-channel IPC
│   │       └── style.css        # Desain glassmorphism & responsive layout
│   ├── icon/
│   │   └── icon.go              # Ekstraksi dan injeksi icon PE via embedded rcedit
│   ├── mb132/                   # Wrapper murni Go untuk engine Chromium 132
│   │   └── mb132.go             # Syscall DLL loader, VEH crash handler, hooks
│   ├── mb49/                    # Manager engine terpusat Miniblink 49
│   │   └── mb49.go              # Inisialisasi, AppData cache & ZSTD decompression
│   ├── payload/                 # Engine Trailer Binary V1 & V2
│   │   ├── format.go            # Header, Magic trailer, serialisasi
│   │   ├── reader.go            # Pembacaan trailer payload runtime
│   │   └── writer.go            # Penulisan trailer payload, injeksi metadata
│   ├── runtime/                 # Subsystem Runner Aplikasi Mandiri
│   │   ├── runtime_v132.go      # In-Memory Virtual Host & hook Chromium 132
│   │   └── runtime_v49.go       # Runner Miniblink 49
│   └── version/                 # Sentralisasi versi aplikasi & engine
│       ├── version_v132.go      # Metadata versi Respect Modern
│       └── version_v49.go       # Metadata versi Respect Lite
├── scripts/
│   ├── build.ps1                # Skrip utama kompilasi multi-target & demo apps
│   ├── compress_dll.go          # Utilitas kompresi ZSTD untuk Modern & Lite DLL
│   └── verify_cookies_and_zombie.ps1 # Skrip verifikasi isolasi sandbox & process leak
├── stress-testing/              # Suite web diagnostik & stress testing browser resmi
│   ├── index.html               # Dashboard lab HUD & tabbed telemetry
│   ├── worker.js                # Web Worker untuk multithreaded compute benchmark
│   ├── css/                     # Styling dark cyberpunk telemetry
│   └── js/                      # Modul fingerprint, apidump, capability, media, stress
├── go.mod                       # Definisi modul Go
├── go.sum                       # Checksum ketergantungan modul
├── main.go                      # Entry point: CLI parser, trailer check, app routing
└── README.md                    # Ringkasan cepat & panduan pengguna di root

6. Pipeline CI/CD GitHub Actions

Penerbitan rilis baru dikelola sepenuhnya secara otomatis oleh GitHub Actions melalui file .github/workflows/release.yml:

  1. Pemicu (Trigger): Mendorong tag git baru berformat v* (contoh: v1.2.0):
    git tag v1.2.0
    git push origin v1.2.0
    
  2. Proses Eksekusi di Cloud Runner Windows:
    • Memasang Go 1.25.x.
    • Menjalankan kompilasi tiga varian binary mandiri (respect.exe, respect-lite.exe, dan respect-lite-x86.exe).
    • Menyuntikkan icon PE resmi dan metadata versi ke header executable.
    • Memvalidasi integritas file.
  3. Penerbitan Aset: Aset biner langsung diunggah ke halaman GitHub Releases tanpa membungkusnya dalam file zip, sehingga pengguna dapat langsung mengunduh 1 file .exe dan menjalankannya seketika.

7. Melakukan Pengujian & Verifikasi

Sebelum mengirimkan Pull Request atau membuat rilis:

# 1. Jalankan Go vet untuk memeriksa validitas kode
go vet ./...

# 2. Uji kompilasi kedua edisi
.\scripts\build.ps1 -Target modern
.\scripts\build.ps1 -Target lite

# 3. Jalankan skrip verifikasi sandbox dan eliminasi zombie process
powershell -ExecutionPolicy Bypass -File .\scripts\verify_cookies_and_zombie.ps1

⮅ïļ Sebelumnya: 4. Lifecycle & Runtime Internal Daftar Isi 🏠 Selanjutnya: 6. Kompatibilitas & Batasan Engine ➡ïļ