ngx-rustでnginxのmoduleを使ってみた
nginxのmoduleはC言語で書くのがデファクトですが、
ngx-rustというクレートを使うことでrustでも書くことができます。
詳しい実装方法はF5 Networksのこちらの記事を読めばわかります。
ngx-rustのexamplesディレクトリや、Matthew Yacobucci氏謹製のngx-rust-howtoがわかりやすいでしょう。
ところがこれら例題のモジュールはEvan Miller氏のnginx module実装の第一級的資料でいうところのfilter moduleに該当し、handler moduleの例はなかなか見つかりません。
www.evanmiller.org
そこでngx-rustのdiscussionでhandler moduleの作り方を聞いてみました。
これらの情報を基に、handler moduleを作ってみようと思い、handler moduleの代表格ともいうべきngx_http_stub_status_moduleをrustで実装してみました