Clojure

Nginx-Clojure はis a NGINX module for embedding Clojure or Java or Groovy programs, typically those Ring based handlers.

幾つかの主な機能があります:

  1. Ringと互換性があり、当然Ringに基づいたCompojureなどのフレームワークをサポートします。
  2. httpサービスのための簡単なringハンドラーを書くために Clojure / Java / Groovy を使ってください。
  3. proxy passあるいはコンテント リング ハンドラの前に変数を設定あるいはエラーを返すために簡単なNGINX rewriteハンドラを各には Clojure / Java / Groovy を使います。
  4. Non-blocking coroutine based socket which is Compatible with Java Socket API and works well with largely existing java library such as apache http client, mysql jdbc drivers. この機能を使ってjavaのmainスレッドは多数の接続を扱うことができます。
  5. サブcoroutineで多数のソケットを並行して扱います。例えば、同時に二つのリモートサービスを起動することができます。
  6. 幾らかの進んだ使い方のためのソケットの非同期コールバックAPI。
  7. NGINXワーカーの起動時に初期化クロージャーコードを実行。
  8. ユーザ定義のhttpリクエストメソッドのサポート。
  9. NGINXの最新の安定バージョン1.6.0との互換性。(NGINX 1.4.x も大丈夫です。古いバージョンはテストされていませんが、動作するかも知れません)。
  10. NGINXの利点の一つに、ワーカープロセスがクラッシュした場合に自動的にマスタープロセスによって再起動されることがあります。
  11. クロージャーあるいはJavaコードから素早く動的コンテントを処理するために、lazyヘッダと、NGINXとJVM間の直接メモリ操作を使います。
  12. クロージャーあるいはJavaコードによって制御される静的なコンテントを素早く処理するために、NGINXのゼロコピーファイル送信機構を使います。
  13. Linux x64, Linux x86 32bit, Win32 および Mac OS X をサポートします。Win64 ユーザはそれを 32bit JRE/JDKで動作することもできます。

ちなみに、とても速いです。ベンチマークはここで見つけることができます。

詳細はnginx-clojure.github.io をたずねてください。

TOP
inserted by FC2 system