devd - Goで作られたクロスプラットフォームの開発者向けWebサーバー

NewImage

開発者向けのWebサーバー「devd」を紹介します(GitHub)。davidはGoで作られていて、Windows / Linux / Mac OS Xなどで動作します。Goの特徴を活かし単一バイナリとして配布されているので、単にファイルをダウンロードし、所定の場所にコピーするだけで使用することができます。

ライブリロードやリバースプロキシ、バーチャルホスティング、レイテンシー・帯域のシミュレーション機能など、開発者向けの機能が充実しています。

devdの基本

ターミナルから使用します。HTMLを保存してあるフォルダに移動し、以下のコマンドを実行します。"-o"はブラウザをオープンするオプション、"-l"はライブリロードを実行するオプションです。

devd -ol .

カレントディレクトリの「index.html」の内容が、「http://devd.io.8000」として表示されます。

S 2015 11 06 23 30 05

index.htmlを編集すると、ブラウザに表示されている内容が自動的にリロードされ更新されていきます。

リバースプロキシ

単に静的なHTMLファイルを表示するだけでなく、リバースプロキシとして利用することもできます。この場合もライブリロード機能を併用可能で、"-w"で指定したソースコードフォルダの変更が監視対象となります。

例えばRailsアプリと連携したい場合、通常通り「rails s」でWEBrickを立ち上げ、devdを以下のように起動します。

devd -w ./app http://localhost:3000

コントローラーファイルやビューファイルを編集すると、ブラウザが自動でリロードされます。

S 2015 11 09 20 44 04

その他オプション

「devd --help」を実行するとその他のオプションを確認できます。

  -A, --address="127.0.0.1"
                      Address to listen on
  -a, --a             Listen on all addresses
  -c, --cert=PATH     Certificate bundle file - enables TLS
  -d, --down=N        Throttle downstream from the client to N kilobytes per second
  -H, --logheaders    Log headers
  -I, --ignore=REGEX  Disable logging matching requests. Regexes are matched over 'host/path'
  -l, --livereload    Enable livereload for static files
  -n, --latency=N     Add N milliseconds of round-trip latency
  -o, --open          Open browser window on startup
  -p, --port=PORT     Port to listen on - if not specified, devd will auto-pick a sensible port
  -T, --logtime       Log timing
  -u, --up=N          Throttle upstream from the client to N kilobytes per second
  -w, --watch=PATH    Watch path to trigger livereload

帯域幅を"-d"(ダウンロード速度)や"-u"(アップロード速度)で制限したり、レイテンシを"-n"で指定することで、接続な不安定な状況でのWebサービスのテストをシミュレートすることもできます。

ルーティングの指定や、リバースプロキシを静的コンテンツと組み合わせて利用したい場合など、さらなる詳細はドキュメントを参照してください。

devdはGoで記述されMITライセンスで配布されています。

スポンサーリンク