0.0
No release in over 3 years
A modular, concurrent web server built with nio4r.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
 Dependencies

Runtime

~> 2.0
~> 3.0
~> 2.0
 Project Readme

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 nio4r untuk 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 install

Atau instal langsung melalui terminal:

gem install eksa-server

Penggunaan Cepat

Cukup jalankan perintah berikut di direktori proyek Anda yang memiliki file config.ru:

eksa-server

Anda juga bisa menentukan file rack secara spesifik:

eksa-server app/config.ru -p 4000

Konfigurasi

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!"
end

Dokumentasi 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.