EksaServer
EksaServer adalah server web Ruby asinkron berperforma tinggi. Dibangun di atas nio4r, server ini dirancang untuk menangani ribuan koneksi secara efisien dengan dukungan multithreading dan multiprocess (cluster mode).
Fitur Utama
- ๐ Performa Tinggi: Menggunakan
nio4runtuk event loop non-blocking. - ๐งต Multithreading Dinamis: Thread pool yang menskalakan secara otomatis sesuai beban.
- ๐๏ธ Cluster Mode: Memanfaatkan multi-core CPU dengan worker process.
- ๐ Phased Restarts: Update kode aplikasi tanpa downtime (Zero Downtime).
- ๐ ๏ธ Konfigurasi DSL: Pengaturan mudah melalui file
server.rb. - ๐ Rack Compliant: Mendukung semua framework Ruby berbasis Rack (Rails, Sinatra, EksaFramework, dll).
- ๐ก๏ธ Premium Error Page: Halaman error glassmorphism yang elegan.
Instalasi
Tambahkan baris ini ke Gemfile aplikasi Anda:
gem 'eksa-server'Lalu jalankan:
bundle installAtau instal langsung melalui terminal:
gem install eksa-serverPenggunaan Cepat
Cukup jalankan perintah berikut di direktori proyek Anda yang memiliki file config.ru:
eksa-serverAnda juga bisa menentukan file rack secara spesifik:
eksa-server app/config.ru -p 4000Konfigurasi
Buat file config/eksa_server.rb untuk pengaturan tingkat lanjut:
threads 5, 20 # Min, Max threads
workers 2 # Aktifkan Cluster Mode
bind "tcp://0.0.0.0:3000"
# bind "unix:///tmp/eksa.sock"
on_worker_boot do |index|
puts "Worker #{index} siap melayani!"
endDokumentasi Lengkap
Untuk melihat panduan lengkap dan fitur interaktif, silakan kunjungi repositori resmi di GitHub atau jalankan secara lokal dari source code: https://github.com/IshikawaUta/eksa-server
Lisensi
Proyek ini dirilis di bawah Lisensi MIT.