読者です 読者をやめる 読者になる 読者になる

non vorrei lavorare

ブログ名の通りです。javascript three.js mruby rust OCaml golang julialang blender

mrubyのHTTP2サーバー(trusterd)をRack APIに対応させる その2

はじめに

この記事は、@kjunichiの2015年パーソナルアドベントカレンダーの21日目の記事です。

mruby-hibariで動かす

とりあえず、フルスペックでRack APIに対応させるのは 大変そうなので、mruby-hibariが動くところまでが目標。

hibariが参照しているenvの属性

現状のHibariでは

を見れば分かるように trusterdからブロックに渡す際の引数envに 以下の属性が設定されていないと、何かマズそう気配。

  • REQUEST_METHOD
  • SCRIPT_NAME
  • PATH_INFO
  • REQUEST_URI
  • QUERY_STRING
  • SERVER_NAME
  • SERVER_ADDR
  • SERVER_PORT
  • REMOTE_ADDR
  • REMOTE_PORT

trusterdでの対応

これらの属性のtrusterdでの対応するものを書き出すと

Rack trusterd
REQUEST_METHOD s.method
SCRIPT_NAME s.filename
PATH_INFO s.uri
REQUEST_URI s.unparsed_uri
QUERY_STRING s.args および、 POST時のパラメータも設定
SERVER_NAME s.hostname
SERVER_ADDR
SERVER_PORT
REMOTE_ADDR s.client_ip
REMOTE_PORT

サーバー側のIPアドレスとポート番号も設定ファイルに記述してるから、 参照できるはずなので、次回までには押さえておかねば。

続く

とりあえず、mrubyの実装は年内に終わらせたいなぁ。

追記

www.youtube.com

動かせた