Framework backend tercepat untuk Bun yang mendukung TypeScript secara native, CanxJS layak masuk daftar coba-coba proyek berikutnya. Framework ini dirancang async-first, memakai algoritma Radix Tree untuk routing, dan diklaim sanggup menangani lebih dari 250.000 request per detik — jauh melampaui Express.js, NestJS, bahkan Laravel.
Di artikel ini kita akan bahas tuntas apa itu CanxJS, fitur-fitur andalannya, perbandingan benchmark dengan framework populer lain, sampai contoh kode instalasi dan REST API sederhana yang bisa langsung kamu coba.
Apa itu CanxJS?
CanxJS adalah framework backend MVC async untuk Bun yang dibangun dengan filosofi "batteries-included" — artinya sebagian besar fitur yang biasanya kamu install manual di Express (ORM, WebSocket, caching, keamanan) sudah tersedia out-of-the-box tanpa konfigurasi tambahan.
Framework ini ditargetkan untuk developer yang menginginkan performa setara aplikasi native, tapi tetap dengan developer experience modern ala Laravel maupun NestJS.
Fitur Utama CanxJS
1. Ultra-Fast Routing
CanxJS menggunakan algoritma Radix Tree untuk pencocokan rute dengan kompleksitas O(k), ditambah JIT caching sehingga mampu menangani lebih dari 250.000 request per detik.
2. Async-First Design
Semua API di CanxJS bersifat asynchronous secara default, sehingga kamu terhindar dari callback hell dan menulis kode yang lebih bersih dan modern.
3. HotWire Protocol
Fitur streaming real-time tanpa perlu setup WebSocket manual. Cukup broadcast update, dan semua client akan menerimanya secara instan.
4. Auto-Cache Layer
Sistem caching otomatis dengan analisis pola akses, sehingga performa aplikasi tetap optimal tanpa perlu konfigurasi caching manual.
5. Zero-Config ORM
Mendukung MySQL dan PostgreSQL dengan query builder yang elegan, tanpa setup ribet.
6. Native JSX Views
Render tampilan server-side langsung dengan JSX, tanpa perlu templating engine eksternal seperti EJS atau Handlebars.
7. WebSocket Support
Integrasi WebSocket native untuk komunikasi real-time dua arah, cocok untuk chat app, notifikasi live, atau dashboard monitoring.
8. Built-in Security
Proteksi CSRF, rate limiting, dan validasi input sudah tersedia sejak awal — kamu tidak perlu install package keamanan tambahan.
9. Edge Runtime
Bisa di-deploy ke lokasi edge di seluruh dunia untuk latensi ultra-rendah.
Benchmark: CanxJS vs Express.js vs Laravel vs NestJS
Berikut perbandingan performa CanxJS dibanding framework backend populer lainnya:
| Fitur | CanxJS | Express.js | Laravel | NestJS |
|---|---|---|---|---|
| Requests / Detik | 250.000+ | ~15.000 | ~2.000 | ~12.000 |
| Startup Time | < 50ms | ~200ms | ~500ms | ~1000ms |
| Type Safety Native | ✅ | ❌ | ❌ | ✅ |
| Native WebSocket | ✅ | ❌ | ❌ | ✅ (dengan setup tambahan) |
| HotWire Protocol | ✅ | ❌ | ❌ | ❌ |
| Bundle Size | < 30MB | Variatif | > 100MB | > 50MB |
Catatan: angka benchmark di atas merupakan klaim dari pengembang CanxJS berdasarkan pengujian internal. Hasil aktual bisa berbeda tergantung environment, hardware, dan skenario beban kerja.
Statistik Performa Singkat
- 250.000+ requests/detik — 15x lebih cepat dari Express
- < 30MB penggunaan memori — 75% lebih hemat dari Laravel
- < 50ms startup time — 40x lebih cepat dari Laravel
Cara Instalasi CanxJS
Pastikan kamu sudah menginstall Bun di komputer sebelum memulai. Berikut langkah instalasinya:
bunx create-canx my-app
cd my-app
bun run dev
Hanya dengan tiga baris perintah di atas, project CanxJS kamu sudah berjalan di local server dan siap dikembangkan.
Contoh Kode: Membuat REST API Sederhana
Berikut contoh dasar membuat server dengan middleware logger dan CORS, lalu membuat satu endpoint API:
// app.ts
import { createApp, logger, cors } from "canxjs";
const app = createApp({ port: 3000 });
// Middleware
app.use(logger());
app.use(cors());
// Routes
app.get("/", (req, res) => {
res.json({ message: "Hello CanxJS!" });
});
app.listen();
Jalankan dengan bun run app.ts, lalu buka http://localhost:3000 di browser — kamu akan melihat response JSON { "message": "Hello CanxJS!" }.
Penjelasan Kode
createApp({ port: 3000 })— inisialisasi aplikasi CanxJS dan menentukan port server.app.use(logger())— middleware bawaan untuk mencatat log setiap request yang masuk.app.use(cors())— middleware bawaan untuk mengizinkan request lintas origin (CORS).app.get("/", ...)— mendefinisikan route GET pada path root (/).app.listen()— menjalankan server agar mulai menerima request.
Troubleshooting Umum saat Setup CanxJS
Beberapa error yang mungkin muncul saat pertama kali mencoba CanxJS, beserta solusinya:
1. Error: command not found: bunx
Penyebab: Bun belum terinstall di sistem kamu.
Solusi: Install Bun terlebih dahulu dengan perintah berikut, lalu restart terminal:
curl -fsSL https://bun.sh/install | bash
2. Error: EADDRINUSE: address already in use :::3000
Penyebab: Port 3000 sudah dipakai proses/aplikasi lain.
Solusi: Ganti port di konfigurasi createApp, atau matikan proses yang memakai port tersebut:
// Ganti port
const app = createApp({ port: 3001 });
// Atau cari & matikan proses yang memakai port 3000 (Linux/Mac)
lsof -i :3000
kill -9 <PID>
3. Error koneksi database (MySQL/PostgreSQL)
Penyebab: Kredensial database belum diatur atau service database belum berjalan.
Solusi: Pastikan file environment (.env) sudah berisi konfigurasi database yang benar (host, user, password, nama database), dan pastikan service MySQL/PostgreSQL sudah aktif sebelum menjalankan bun run dev.
Contoh Use Case CanxJS
- REST API — boilerplate lengkap dengan autentikasi dan CRUD.
- Real-time Chat — aplikasi chat berbasis WebSocket dan HotWire Protocol.
- E-commerce Backend — API lengkap untuk pembayaran dan manajemen order.
- SaaS Starter — backend multi-tenant dengan sistem auth dan billing.
FAQ Seputar CanxJS
Apa itu CanxJS?
CanxJS adalah framework backend async-first untuk runtime Bun yang dirancang untuk performa tinggi, dengan fitur bawaan seperti ORM, WebSocket, dan sistem keamanan tanpa perlu konfigurasi tambahan.
Apa bedanya CanxJS dengan Express atau Fastify?
CanxJS berjalan di atas runtime Bun (bukan Node.js), menggunakan algoritma Radix Tree untuk routing, dan menyediakan fitur bawaan seperti ORM, WebSocket, dan HotWire Protocol yang tidak tersedia secara native di Express maupun Fastify.
Apakah harus paham TypeScript untuk memakai CanxJS?
Tidak wajib, tapi sangat disarankan. CanxJS dibangun dengan dukungan TypeScript penuh sehingga pengalaman development jauh lebih nyaman dengan type-safety dan auto-completion.
Apakah CanxJS bisa dipakai dengan database yang sudah ada?
Bisa. CanxJS mendukung MySQL dan PostgreSQL melalui ORM bawaannya, sehingga kamu bisa menghubungkannya ke database yang sudah berjalan sebelumnya.
Apakah CanxJS sudah production-ready?
CanxJS dirancang dengan fitur production-ready seperti caching otomatis, keamanan bawaan (CSRF, rate limiting), dan dukungan edge runtime untuk deployment skala besar.
Kesimpulan
CanxJS hadir sebagai alternatif menarik bagi developer yang menginginkan performa backend setinggi mungkin tanpa mengorbankan developer experience. Dengan dukungan async-first, routing super cepat, dan fitur bawaan yang lengkap, framework ini cocok dicoba untuk proyek API, real-time app, hingga backend SaaS.
Tertarik mencoba? Install sekarang dengan satu perintah:
bunx create-canx my-app
👉 Baca Dokumentasi Lengkap
👉 Lihat Source Code di GitHub
Punya pertanyaan atau ingin berdiskusi soal CanxJS? Tulis di kolom komentar di bawah ya!
