今日からはじめるMochiweb


ちょっと前から個人的にErlangに注目しています。
領域的にJavaとは全く別個の世界が見えてるので、そこにつかえないかなと。


というわけで、Erlangの基本のキくらししか知らないのでどこまで通用するかわからないですが、今日からはじめるMochiwebと題して恥を晒して行きたいと思いますw


Mochiwebとは、Erlangで書かれた軽量HTTPサーバです。サイトはここです。


id:Voluntasさんにアドバイスを求めたところ、さてはMochiweb読んでない、キサマは素人だなと言われたので、取り急ぎ読む次第です。ちなみにMochiwebはMochimediaというオンラインゲームでばんばん使われており、相当なハイパフォーマンスをたたき出しているという話ですが、そもそも全くドキュメントがないw HTTPとよく使うプロトコルの最たる例なので、それでもなんとかなるだろと思いつつ、まずはこいつをハックしてみる次第です。
Erlangいれて、まずはコードをチェックアウト。

svn checkout http://mochiweb.googlecode.com/svn/trunk/ mochiweb


makeしてみて、treeしてプロジェクト構造を確認してみます.

pugya:mochiweb shot$ tree
.

-- LICENSE
-- Makefile
-- README
-- deps
-- doc
-- ebin
-- mochifmt.beam
-- mochifmt_records.beam
-- mochifmt_std.beam
-- mochihex.beam
-- mochijson.beam
-- mochijson2.beam
-- mochinum.beam
-- mochiweb.app
-- mochiweb.beam
-- mochiweb_app.beam
-- mochiweb_charref.beam
-- mochiweb_cookies.beam
-- mochiweb_echo.beam
-- mochiweb_headers.beam
-- mochiweb_html.beam
-- mochiweb_http.beam
-- mochiweb_multipart.beam
-- mochiweb_request.beam
-- mochiweb_response.beam
-- mochiweb_skel.beam
-- mochiweb_socket_server.beam
-- mochiweb_sup.beam
-- mochiweb_util.beam
`-- reloader.beam
-- include
-- priv
`-- skel
-- Makefile
-- deps
-- doc
-- ebin
-- include
-- priv
`-- www
`-- index.html
-- src
-- Makefile
-- skel.app
-- skel.erl
-- skel.hrl
-- skel_app.erl
-- skel_deps.erl
-- skel_sup.erl
`-- skel_web.erl
-- start-dev.sh
-- start.sh
`-- support
`-- include.mk
-- scripts
`-- new_mochiweb.erl
-- src
-- Makefile
-- mochifmt.erl
-- mochifmt_records.erl
-- mochifmt_std.erl
-- mochihex.erl
-- mochijson.erl
-- mochijson2.erl
-- mochinum.erl
-- mochiweb.app
-- mochiweb.erl
-- mochiweb_app.erl
-- mochiweb_charref.erl
-- mochiweb_cookies.erl
-- mochiweb_echo.erl
-- mochiweb_headers.erl
-- mochiweb_html.erl
-- mochiweb_http.erl
-- mochiweb_multipart.erl
-- mochiweb_request.erl
-- mochiweb_response.erl
-- mochiweb_skel.erl
-- mochiweb_socket_server.erl
-- mochiweb_sup.erl
-- mochiweb_util.erl
`-- reloader.erl

`-- support
`-- include.mk

17 directories, 67 files

思ったよりもファイル数少ないですが、まあおいおい見て行きましょう。
ひとまずこれでbootできるはずです
/scripts/new_mochiweb.erlがデモアプリケーションのスケルトンのようなので、
これで ./scripts/new_mochiweb.erl application-name path のように実行するとテンプレートからアプリケーションのひな形を自動生成してくれます。おお、便利。


んで、makeして、start-dev.shとか叩けばOKな感じ。ttp://localhost:8000/とかにアクセスすると

MochiWeb running.


細切れ時間の合間でひとまず動かすところまで来ました^^
次回はプロジェクト構成とか、ブートストラップまわりを見てみたいと思います。
いろいろわからないことだらけなので、間違っている事やここはこうだよとか教えてもらえると助かりますm(_ _)m