みずぴー日記

月に行こうという目標があったから、アポロは月に行けた。飛行機を改良した結果、月に行けたわけではない。

🌐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サーバ

同一ネットワークの別マシンにファイルを受け渡すときに、わざわざDropboxNASを経由すると面倒なのである。 また、 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とかあるし関数型言語っぽく書けるのかな、と思ったけど、そこまででもなかった。