Skip to content
A pure JS HTTP parser for node.
JavaScript Python
Find file
Latest commit d86f550 Feb 5, 2016 @Jimbly Jimbly Add .travis.yml
Failed to load latest commit information.
tests Update to node 5.x Nov 19, 2015
.gitignore Update to node 4.x Sep 26, 2015
.travis.yml Add .travis.yml Feb 5, 2016
LICENSE.md Update to node 4.x Sep 26, 2015
README.md Update README.md May 26, 2015
http-parser.js Small cleanup Jan 16, 2016
package.json Small cleanup Jan 16, 2016

README.md

HTTP Parser

This library parses HTTP protocol for requests and responses. It was created to replace http_parser.c since calling C++ function from JS is really slow in V8.

This was further modified by Jimbly to be useable in parsing responses, specifically tested with the "request" module, and addresses issues such as corrupt HTTP headers, which would otherwise cause Node's parser to throw a fatal error (HPE_INVALID_HEADER_TOKEN).

Jan Schär (jscissr) made some bigger changes and added tests. This fixed some bugs and added many missing features.

This is packaged as a standalone npm module. To use in node, monkeypatch HTTPParser.

// Monkey patch before you require http for the first time.
process.binding('http_parser').HTTPParser = require('http-parser-js').HTTPParser;

var http = require('http');
// ...

Testing

Simply do npm test. The tests are copied from node and mscedex/io.js, with some modifcations.

Status

This should now be usable in any node application, it now supports (nearly) everything http_parser.c does while still being tolerant with corrupted headers.

License

MIT. See LICENSE.md

Something went wrong with that request. Please try again.