Kilat adalah runtime JavaScript CommonJS yang ringan dan efisien, dibangun di atas Go menggunakan compiler engine Goja. Runtime ini dirancang khusus untuk perangkat mobile melalui Termux (Android) serta sistem operasi Linux (seperti Kali Linux, Ubuntu, dll.) guna memberikan performa tinggi dengan konsumsi daya dan penyimpanan yang minimal.
Bekerja mirip Node.js/Bun, tetapi dirancang tanpa beban folder raksasa node_modules.
Pada perangkat mobile (seperti Android melalui Termux), performa V8 engine bawaan Node.js sering kali terlalu berat dan memakan banyak memori RAM. Selain itu, filesystem Android kurang optimal dalam menangani puluhan ribu file kecil bersarang di dalam folder node_modules.
Kilat memecahkan masalah ini dengan:
- Engine Goja: Engine JavaScript berbasis Go murni yang jauh lebih ringan dan cepat saat startup.
- Centralized Package Directory: Semua package diunduh langsung ke
.kilat/packages/secara global/terpusat, tidak ada lagi duplikasi ribuan file kecil di setiap folder proyek Anda. - Startup Instan: Tanpa overhead pemuatan library V8.
- ⚡ Eksekusi JavaScript Cepat: Dukungan penuh sintaks CommonJS (ES5/ES6 dasar).
- 📦 Package Manager Terintegrasi: Pasang modul npm langsung menggunakan perintah
kilat add <package>. - 🔌 Modul Bawaan Intuitif: API standar untuk menangani file (
fs), jaringan (net), sistem (os), dan logging (console). - 🔄 Sistem Caching Pintar: Pemuatan
require()otomatis dicache untuk kecepatan eksekusi maksimum. - 🛠️ Inisialisasi Cepat: Mulai proyek baru dalam hitungan detik dengan
kilat init. - 🎨 Visual CLI Indah: Dilengkapi visualisasi progress bar dan animasi interaktif saat menginstal dependensi.
Cara termudah dan tercepat untuk memasang Kilat. Skrip ini akan otomatis mendeteksi arsitektur perangkat Anda (ARM64, AMD64, atau ARMv7) dan memasang binary rilis yang sesuai:
curl -fsSL https://raw.githubusercontent.com/ihsannyy/kilat/main/install.sh | bashJika ingin mengompilasi sendiri, pastikan sudah memasang Go v1.21 ke atas:
# Clone repositori
git clone https://github.com/ihsannyy/kilat
cd kilat
# Kompilasi source code
go build -o kilat ./cmd/kilat
# Pindahkan ke bin path Termux
mv kilat $PREFIX/bin/Membuat file konfigurasi package.json secara interaktif (atau gunakan -y untuk langsung menyetujui opsi default).
kilat init -yMenjalankan skrip JS/TS Anda menggunakan runtime Kilat. Perintah ini juga dapat digunakan untuk menjalankan user-defined scripts di dalam berkas package.json (seperti kilat run dev).
Tambahkan opsi --watch atau -w untuk mendeteksi perubahan berkas dan memuat ulang secara otomatis.
kilat run index.js --watch
# atau menjalankan script package.json:
kilat run devMengeksekusi langsung start script yang dideklarasikan di dalam berkas package.json. Jika tidak ada script "start" yang dideklarasikan, perintah ini akan otomatis mencari dan menjalankan berkas index.ts/index.js/server.ts/server.js sebagai fallback default.
kilat startMengunduh package dan menyimpannya di direktori modul terpusat Kilat.
kilat add lodashMenghapus package dari direktori modul proyek aktif dan membersihkan package.json.
kilat remove lodash
# atau menggunakan alias singkat:
kilat rm lodashMelakukan bundling seluruh berkas JS/TS (beserta modul lokal yang di-require) menjadi satu berkas JavaScript tunggal teroptimasi untuk produksi:
kilat build index.ts dist/bundle.jsMembuka shell interaktif untuk menguji dan mengevaluasi kode JavaScript secara langsung.
kilat replMenampilkan versi Kilat yang terpasang.
kilat --versionMemperbarui biner runtime Kilat ke versi rilis terbaru secara otomatis.
kilat --updateconsole.log("🚀 Hello from Kilat!");
const fs = require('fs');
const os = require('os');
// Membaca Environment variable dan daftar file
console.log("OS Platform:", os.getenv("OSTYPE") || "unknown");
console.log("Files di direktori aktif:", fs.readdirSync("."));Jalankan dengan perintah:
kilat run hello.jskilat add lodashBuat kode berikut:
const _ = require('lodash');
const data = [1, 2, 3, 4, 5];
console.log("Hasil chunk:", _.chunk(data, 2));
// Output: [[1, 2], [3, 4], [5]]kilat/
├── cmd/kilat/main.go # Entry point utama untuk aplikasi CLI
├── internal/
│ ├── engine/ # Runtime Goja + mekanisme require()
│ ├── modules/ # Core API bawaan (console, fs, net, os)
│ ├── pkgmanager/ # Package manager engine (add, install, fetch)
│ ├── init/ # Implementasi perintah kilat init
│ └── utils/ # Utility, Helper, dan Versioning
├── examples/ # Kumpulan contoh skrip JavaScript
├── go.mod # Modul Go dependency
└── README.md # Dokumentasi proyek
Struktur penyimpanan dependensi Kilat berbeda dari runtime JS biasa:
package.json: Tetap menggunakan format berkas package standar industri.- Folder
.kilat/packages/: Folder terpusat di direktori home pengguna tempat dependensi disimpan. - Resolusi Path: Ketika memanggil
require('lodash'), Kilat secara otomatis mencari di.kilat/packages/lodash. - Spesifikasi Versi: Mendukung pemasangan versi tertentu seperti
kilat add lodash@4.
Kilat menyediakan beberapa API inti tanpa perlu instalasi pihak ketiga:
| Module | Fungsi Utama | Contoh Penggunaan |
|---|---|---|
console |
Menampilkan log ke terminal dengan formatting warna. | console.error("Gagal!") (teks merah) |
fs |
Akses berkas sinkron (Sync) pada filesystem. | fs.readdirSync(".") |
net |
Melakukan HTTP request dengan ringkas. | const res = net.fetch("https://api.github.com") |
os |
Berinteraksi dengan environment dan argumen sistem. | const args = os.args() |
Untuk memastikan runtime berjalan lancar, Anda dapat mencoba memasang package yang membutuhkan formatting warna:
kilat add chalkBuat file test.js:
const chalk = require('chalk');
console.log(chalk.green('✔ Hore! chalk dan runtime Kilat berfungsi dengan sempurna!'));Jalankan pengujian:
kilat run test.jsSetiap kontribusi berupa perbaikan bug, penambahan modul bawaan baru, maupun saran peningkatan fitur sangat dihargai!
# Langkah pengembangan lokal:
git clone https://github.com/ihsannyy/kilat
cd kilat
go mod tidy
go build -o kilat ./cmd/kilatSilakan buat Fork, lakukan perubahan, dan kirimkan Pull Request (PR) ke repositori ini.
Proyek ini dilisensikan di bawah MIT License. Lihat berkas lisensi untuk detail selengkapnya.
MIT © 2026 ihsannyy
Dibuat seadanya. Modal sebatang rokok dan seglintir harapan user Termux