🌐Webサーバ
JavaScriptの動作確認をするときなどに、簡単なWebサーバを使いたいことがある。
これまではWebrickで書いたWebサーバを使っていたが、Rustで書き直して単一バイナリで動作するようにした。
📦インストール
https://github.com/mzp/tiny-web-serverからダウンロードできる。また以下のコマンドでもインストールできる。
curl -L -o tiny-web-server https://github.com/mzp/tiny-web-server/releases/download/1.0.0/tiny-web-server-x86_64-apple-darwin chmod a+x tiny-web-server ./tiny-web-server
📤簡単なWebサーバ
同一ネットワークの別マシンにファイルを受け渡すときに、わざわざDropboxやNASを経由すると面倒なのである。 また、 JavaScriptの動作を確認したいときも、ローカルのファイルではうまく動作しないことがある。
こういった場合、ローカルのファイルを公開するだけのWebサーバを使うと便利である。
これまではWebrickで書いた以下ようなサーバを使っていた。
#!/usr/bin/env ruby require 'webrick' require 'erb' include WEBrick s = HTTPServer.new(:Port=>8055,:DocumentRoot=> Dir::pwd, :DirectoryIndex => ["index.html","index.htm","index.cgi","index.rhtml"]) trap("INT"){ s.shutdown } s.start
また、Pythonなら python -m SimpleHTTPServer
で同様のことができる。
🦀Rust
Rustの勉強がしたかったので、Rustで書いてみた。 単一バイナリで動いたほうがなにかと便利かもしれないと思っている。
macOS用のバイナリは🔀Rust クロスコンパイルで述べた方法で作っている。
❤️所感
- 所有権が難しい。特にクロージャと組み合わせると、より難しい。 わりと慣れてきた感じはするが最初はまったく分かなかった。
- OptionとかResultとかあるし関数型言語っぽく書けるのかな、と思ったけど、そこまででもなかった。
エラーメッセージにいわるままmutをつけるマンになっている。
— mzp (@mzp) 2017年4月19日
今日のRust勉強会は所有権について学びました pic.twitter.com/PEywwNFvv3
— mzp (@mzp) 2017年4月26日