Rouille adalah perpustakaan mikro-web-framework. Ini membuat soket mendengarkan dan parsing permintaan HTTP yang masuk dari klien, kemudian memberi Anda tangan untuk memproses permintaan.
Rouille dirancang untuk menjadi intuitif untuk digunakan jika Anda tahu karat. Bertentangan dengan kerangka kerja seperti ekspres, itu tidak menggunakan pasukan tengah. Sebaliknya semuanya ditangani dengan cara linier.
Konsep yang terkait erat dengan situs web (seperti cookie, CGI, input bentuk, dll.) Langsung didukung oleh Rouille. Konsep yang lebih umum (seperti penanganan atau templating database) tidak ditangani secara langsung, karena dianggap ortogonal dengan kerangka kerja web mikro. Namun desain Rouille memudahkan digunakan bersama dengan perpustakaan pihak ketiga mana pun tanpa perlu kode lem apa pun.
Jika Anda memiliki pengetahuan umum tentang cara kerja HTTP, dokumentasi dan contoh-contoh yang terdokumentasi dengan baik adalah sumber daya yang baik untuk memulai.
Berlisensi di bawah salah satu dari
Kecuali jika Anda secara eksplisit menyatakan sebaliknya, kontribusi apa pun secara sengaja diserahkan untuk dimasukkan dalam pekerjaan oleh Anda akan dilisensikan ganda seperti di atas, tanpa syarat atau ketentuan tambahan.
Async I/O, benang hijau, coroutine, dll. Dalam karat masih sangat tidak dewasa.
Perpustakaan Rouille hanya mengabaikan optimasi ini dan berfokus pada penyediaan API sinkron yang mudah digunakan sebagai gantinya, di mana setiap permintaan ditangani dalam utas khususnya.
Bahkan jika Rouille sendiri tidak sinkron, Anda akan memerlukan klien database asinkron dan pemuatan file asinkron untuk memanfaatkannya. Saat ini tidak ada perpustakaan seperti itu di ekosistem karat.
Setelah async I/O telah diketahui, rouille akan (semoga transparan) diperbarui untuk memperhitungkannya.
Pada mesin Linux lama penulis, beberapa pembandingan dasar dengan wrk -t 4 -c 4 menunjukkan hasil berikut:
http.createServer ) menghasilkan ~ permintaan 14k/dtk.Meskipun bukan yang tercepat, Rouille memiliki penampilan yang masuk akal . Di antara semua contoh ini, rouille adalah satu -satunya yang menggunakan I/O sinkron.
Seharusnya sepele untuk mengintegrasikan database atau templat ke server web Anda yang ditulis dengan rouille. Selain itu plugin membutuhkan pemeliharaan dan cenderung membuat neraka ketergantungan. Menurut pendapat penulis umumnya lebih baik untuk tidak menggunakan plugin.
Alih-alih melakukan ini: (pseudo-code)
server . add_middleware ( function ( ) {
// middleware 1
} ) ;
server . add_middleware ( function ( ) {
// middleware 2
} ) ;
server . add_middleware ( function ( ) {
// middleware 3
} ) ;Di Rouille Anda hanya menangani setiap permintaan sepenuhnya secara manual:
// initialize everything here
rouille :: start_server ( .. . , move |request| {
// middleware 1
// middleware 2
// middleware 3
} ) ;