restify / restify/node-restify

[DEP0111] deprecation warning from restify's dependency on node 16

Open
#1,876 18 comments 11 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
JavaScript
Stars
10.7k
Forks
975
Avg merge
1d 6h
Merged PRs (30d)
5

Description

  • Used appropriate template for the issue type
  • Searched both open and closed issues for duplicates of this issue
  • Title adequately and concisely reflects the feature or the bug

Restify Version: 8.5.1
Node.js Version: 16.1.0

Expected behaviour

No node deprecation warnings. This is mostly important in the longer term, because if the subsequent LTS version drops the deprecated functionality, that means that restify will be incompatible with node 18.

Actual behaviour

When starting the server:

(node:1751) [DEP0111] DeprecationWarning: Access to process.binding('http_parser') is deprecated.
    at process.binding (node:internal/bootstrap/loaders:133:17)
    at Object.<anonymous> (/dist/node_modules/http-deceiver/lib/deceiver.js:22:24)
    // cut short

Repro case

Installing restify 8.5.1 and spinning up a restify server on node 16 seems to be enough to trigger the warning.

Cause

Dependency chain: restify -> spdy -> http-deceiver

Are you willing and able to fix this?

I don't think I'm able to. The core functionality that accesses process.binding lives in the http-deceiver package, which is part of spdy.
Unless the behavior can be changed there, or the whole dependency can be replaced, I'm not sure what else can be done.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Reproduce the warning with Restify 8.5.1 on Node.js 16, then inspect dist/node_modules/http-deceiver/lib/deceiver.js and the restify → spdy → http-deceiver dependency chain. Determine whether the deprecated process.binding('http_parser') access can be changed in that dependency or requires replacement. Done means starting a Restify server produces no DEP0111 warning and remains compatible with the stated Node.js versions.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript, node.js
Domain
api, backend
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
28/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.