restify / restify/node-restify
Unable to create http server using node v24 (currently RC)
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: 11.1.0 (latest)
Node.js Version: 24 (latest)
Expected behaviour
A simple HTTP server implementation is expected to function correctly in the most recent Node.js release.
Actual behaviour
The server fails to start due to a breaking change introduced in Node.js version 24.
In this release, the http_parser process binding—deprecated for the past four years—has been removed. This binding is a transitive dependency of the restify package, which results in compatibility issues.
restify -> spdy -> http-deceiver
Repro case
A simple application running on Node.js v24 should suffice. A sample code snippet is provided below:
const restify = require('restify');
const port = 3000;
const logPrefix = `Restify App:\t`;
const server = restify.createServer({
name: 'myrestifyapp',
version: '1.0.0',
});
server.get('/', (req, res, next) => {
res.send('success');
next();
});
server.get('/test', function (req, res, next) {
log('Received /test request');
});
server.listen(port, function () {
log('%s listening at %s', server.name, server.url);
});
function log() {
const args = Array.prototype.slice.call(arguments);
args[0] = logPrefix + args[0];
console.log.apply(console, args);
}
Cause
See the change in node js library that caused this issue: https://github.com/nodejs/node/pull/57149
Are you willing and able to fix this?
I don’t think I can make this change directly. The core functionality that uses process.binding is part of the http-deceiver package, which is a dependency of spdy.
Unless we can modify that behavior within http-deceiver/spdy or replace the entire dependency, there may not be much we can do.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by running the provided restify.createServer example with Node.js 24 and tracing the dependency chain restify -> spdy -> http-deceiver. Read the linked Node.js change and inspect how the removed http_parser binding is used. Done means a simple HTTP server starts and serves requests on Node.js 24 without breaking supported 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
- 35/100