-
Notifications
You must be signed in to change notification settings - Fork 21
Description
The story started in 2014: expressjs/express#2432
I even made the repo where I intended to do this ~2 years ago, but never finished the work.
Since then I have talked with a few people about how the different frameworks and platforms can collaborate. And then @ianstormtaylor kept tweeting about it, so tonight I took the plunge ;)
Here is the initial repo: https://github.com/wesleytodd/express-request
I wrote a few more thoughts about it in the readme for this repo, but I wanted to add here what I think the plan should be:
- Move this repo into the express org. The express org and not
pillarjs
because this is specifically the Express sugar/compatibility layer. Also, I didn't just create it here because I wanted to get consensus on the direction first. - Branch a v2 where we can make Express 5 compatible updates.
- Branch a v3 to work on this being a wrapper for
http1/2/3
. - Implement individual sugar's in separate repos in
pillarjs
and integrate them into this allowing for mix-and-match by other implementations. This would be an ongoing process as needed.
The long term goal is that other frameworks and platforms do not need to reinvent the wheel as express evolves. This can also be a place for us to evolve ideas which will ultimately be proposed as additions to the core api's to help improve and evolve them.
If we can get consensus on the api across frameworks and platforms we can then provide shared tools across the framework ecosystems, making the "framework" fungible with the core http features as the shared underlying code.
Other benefits I can think of:
- Let framework maintainers focus on what makes their frameworks great
- Provide consistency, security and spec compliance to common http layer things
- Increase the collaborator base for some of Node's most important modules
- Encourage new and innovative http frameworks without fear of the huge overhead involved in all these little things.
Anyway, I just wanted to get the conversion moving with an actual implementation example. So to start I pulled it out, and over the next week or so I will make open a PR against the master
/4.0
because this should be backward compatible.
If everyone is onboard with this approach I will do the same for the response and follow the same approach as listed above.
People who might be interested in this to comment on and or collaborate from other frameworks: @matteocollina @styfle @DonutEspresso @hekike
Note: Obviously before we integrate it there is work to do with documentation and getting it fully up to standards with the express org requirements. Removing probably the whole "History and Reasoning" section, sorry Ian 😄