feat(http2): expose `nghttp2_option_set_stream_reset_rate_limit` as a `http2.createServer` option
Due to how ESM works, Vite-like development servers on very large applications may have to perform thousands of requests to localhost. In some difficult to reproduce circumstances1 the rate may be too elevated for a Node.js server which will then start answering with net::ERR_HTTP2_PROTOCOL_ERROR
errors. This can be mitigated by increasing the rate limit.
-
In our case it required having browser extensions setup in specific ways which cause Chrome to deopt(?) part of the network transactions, messing with the timings just enough to trigger the issue. ↩