Node.jsのQUICの実験的サポートは15.8.0で削除されていて利用できない
どういうことか
Node.js 15.7.0はコンパイル時に./configure --experimental-quic指定してQUICを利用できるが、 Node.js 15.8.0以降は./configure --experimental-quicは利用できず、QUICが利用できなくなっている。つまり、const { createQuicSocket } = require('net');は利用できない。 「検索するとNode.js 16では15の機能が使えるからQUICも使える」のような記述を見つけたが、少なくとも現在利用可能な16.0.0と16.1.0で./configure --experimental-quicができないことを手元で確かめたのでQUICは使えない。 https://gyazo.com/b8138a4433803fbbe8d0be3c22a5ffa5
Node.js公式資料
以下のリリースノートを見てわかるように、quicの削除が含まれている。
https://gyazo.com/b22e66295181c0a14db202635d9f4cf7
以下が削除の差分(PR)。
経緯
QUICが使えるnodeコマンドが入ったDockerイメージ( )をメンテしようと思い、以下のDockerfileをビルド後、docker run -itで中に入って、git checkout v16.1.0して./configure --experimental-quicすると、以下のエラーが出てconfigureできなかったことが発端。 code:エラー
gyp: --experimental-quic not found (cwd: /build/node) while trying to load --experimental-quic
Error running GYP
code:Dockerfile
FROM ubuntu:18.04
LABEL maintainer="Ryo Ota <nwtgck@nwtgck.org>"
RUN apt update && \
apt install -y software-properties-common && \
add-apt-repository ppa:ubuntu-toolchain-r/test && \
apt update && \
apt install -y \
g++ \
python \
ccache \
build-essential \
git \
python3-distutils && \
apt-get clean && \
rm -rf /var/lib/apt/lists/*
ENV NODE_REVISION=79c57d0cc55db834177d2f8ce4b4d83109a23dc9
RUN mkdir -p build && \
cd build && \
そのため、いくつかのバージョンにchekcoutしてconfigureしたり試しているうちにv15.7.0だとconfigureできてv15.8.0だとできないことが分かりリリースノートで確認したところQUICが削除されていた。