RouilleはMicro-Webフレームワークライブラリです。リスニングソケットを作成し、クライアントからの着信HTTPリクエストを解析し、リクエストを処理するための手を与えます。
ルイユは、錆を知っている場合に使用するのが直感的になるように設計されています。エクスプレスのようなフレームワークとは反対に、ミドルウェアは採用していません。代わりに、すべてが線形方法で処理されます。
Webサイト(Cookie、CGI、Form Inputなど)に密接に関連する概念は、Rouilleによって直接サポートされています。より一般的な概念(データベースの取り扱いやテンプレートなど)は、マイクロWebフレームワークの直交と見なされているため、直接処理されません。ただし、Rouilleの設計により、接着剤コードを必要とせずにサードパーティライブラリと組み合わせて使いやすくなります。
HTTPの仕組みについて一般的な知識がある場合、ドキュメントと十分に文書化された例は、あなたを始めるための良いリソースです。
いずれかの下でライセンスされています
明示的に特に述べていない限り、お客様による作業に含めるために意図的に提出された拠出は、追加の条件や条件なしで、上記のように二重ライセンスを取得するものとします。
Async I/O、緑の糸、コルーチンなど。さびにはまだ非常に未熟です。
Rouilleライブラリは、この最適化を無視するだけで、代わりに使いやすい同期APIを提供することに焦点を当てています。各リクエストは独自の専用スレッドで処理されます。
Rouille自体が非同期であったとしても、非同期データベースクライアントと非同期ファイルのロードが必要です。現在、Rust Ecosystemにはそのようなライブラリはありません。
Async I/Oが把握されると、Rouilleは(できれば透過的に)更新され、考慮されます。
著者の古いLinuxマシンでは、 wrk -t 4 -c 4を使用した基本的なベンチマークをいくつか示しています。
http.createServerを使用)は、約14kのリクエスト/秒を生成します。最速ではありませんが、ルイユは合理的なパフォーマンスを持っています。これらすべての例の中で、ルイイユは同期I/Oを使用する唯一のものです。
Rouilleで書かれたWebサーバーにデータベースまたはテンプレートを統合することは些細なことです。さらに、プラグインにはメンテナンスが必要であり、依存関係を作成する傾向があります。著者の意見では、一般的にプラグインを使用しない方が良いです。
これを行う代わりに:(擬似コード)
server . add_middleware ( function ( ) {
// middleware 1
} ) ;
server . add_middleware ( function ( ) {
// middleware 2
} ) ;
server . add_middleware ( function ( ) {
// middleware 3
} ) ;ルイユでは、各リクエストを完全に手動で処理するだけです。
// initialize everything here
rouille :: start_server ( .. . , move |request| {
// middleware 1
// middleware 2
// middleware 3
} ) ;