Node.js の HTTP/2 対応について

はじめに

この記事は Node.js Advent Calendar 2016 - Qiita の 23 日目です。

東京 Node 学園祭 2016 からもう一ヶ月以上経ってしまったのですね。

ゲストスピーカーとして登壇してくださった @jasnell がさらっと紹介してくれていましたが、進捗についてもう一度振り返ってみたいと思います

この実装が Node.js の core に入るか、module として切り出すのかは現在のところ決まっていません

東京 Node 学園祭 2016 の動画は こちら

気がつけば忙しかったり疲れていたりで jasnell とまったく話せていなくて軽くショックでした 💦

nghttp2

登壇時にも言っていましたが

nghttp2 is without question the best HTTP/2 library implantation available.

と日本の二大 HTTP/2 実装のうちの一つ nghttp2 をべた褒めしているのは本当に嬉しいです

@tatsuhiro_t さんは HTTP/2 の RFC draft 初期の頃から reference 実装として ietf の workgroup を引っ張ってきた実績のある方なのです

(もう一つは @kazuho さんの h2o ですよ)

Node.js の HTTP/2 の実装はこの nghttp2 を library として bind しています

build

github.com

上記 Repository を clone して ./configure && make するだけです。Python が 2.6 か 2.7 という制限があったりするのでお気をつけください

詳細は こちら

Code And Learn に参加された方はご存知ですよね!

(ああ、Japan のディレクトリ作って参加者の方に自己紹介 pull-request してもらえばよかったのでは…?)

Hello world を動かす

gist.github.com

./node index.js とかで実行。HTTP/2 をサポートしたブラウザでアクセスすると HTTP/2 で通信してくれます。やったね!

Example には Server Push もありますが、まだこれは動かないようです

http2/http2-implementation-notes.md at master · nodejs/http2 · GitHub

まだまだ書きかけのドキュメントですが、これから実装されていくと思うとワクワクしますね!

TODO List

issue にありました

github.com

この issue の最後で言っている design doc は先ほど紹介したドキュメントなのかな?

Project の進め方

github.com

今現在は Round7 ですが、こまめに goal を決めて実装していっているようです

こういった進捗管理も参考になりますね

終わりに

www.youtube.com

Node Interactive NORTH AMERICA でも発表があったようです

まだまだやる事はありそうなので何か手伝えたら良いなと思っております

それではみなさん npm xmas !