Giter Club home page Giter Club logo

web-server-frameworks's Introduction

Web-Server Frameworks Team

Purpose

The Web-Server Frameworks Team is a place for Node.js framework authors and users to collaborate on the future direction and feature set of the frameworks and related Node.js core APIs. The main goal of the team is to improve collaboration across the ecosystem and foster a better dialog between all parties involved.

Goals

Topics which this team discussed or challenges this team decides to take on should fall under one of the goals of the team:

  • Improve Node.js core api support for frameworks
  • Provide feedback and collaboration on Node.js core features and proposals
  • Improve collaboration among framework authors
  • Provide support for frameworks when security issues or bugs arise
  • Be a resource for Node.js security concerns in APIs which touch web frameworks (ex. HTTP1/2/3)
  • Collaborate with other Node.js WGs and teams where it makes sense

Things which should not be done in this repo:

  • Framework wars
  • Promotion of specific tools/resource/etc. without a clear topic for collaboration/discussion
  • Putting down projects, authors or solutions to a problem
  • Determine what is/is not a framework
  • Maintain a list of frameworks, framework authors or maintainers

Joining

We encourage participation from members across the Node.js and JavaScript ecosystem. Feel free to join scheduled meetings and participate in the issues within this repository.

How to Join

Please refer to the Team Membership section of the Governance document for information on how to join this working group.

Web-Server Frameworks Team Members

web-server-frameworks's People

Contributors

chrisrus avatar delvedor avatar dereknongeneric avatar dominuskelvin avatar ethan-arrowood avatar ghermeto avatar marco-ippolito avatar mertcanaltin avatar mhdawson avatar mrazvan avatar mylesborins avatar rishabh96b avatar sheplu avatar shogunpanda avatar styfle avatar sushmeet avatar thescientist13 avatar wesleytodd avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

web-server-frameworks's Issues

Node.js Foundation Web Server Team Meeting 2020-05-28

Date/Time

Timezone Date/Time
America/Los_Angeles Thu 28-May-2020 10:00 (10:00 AM)
America/Denver Thu 28-May-2020 11:00 (11:00 AM)
America/Chicago Thu 28-May-2020 12:00 (12:00 PM)
America/New_York Thu 28-May-2020 13:00 (01:00 PM)
Europe/London Thu 28-May-2020 18:00 (06:00 PM)
Europe/Amsterdam Thu 28-May-2020 19:00 (07:00 PM)
Europe/Moscow Thu 28-May-2020 20:00 (08:00 PM)
Asia/Kolkata Thu 28-May-2020 22:30 (10:30 PM)
Asia/Shanghai Fri 29-May-2020 01:00 (01:00 AM)
Asia/Tokyo Fri 29-May-2020 02:00 (02:00 AM)
Australia/Sydney Fri 29-May-2020 03:00 (03:00 AM)

Or in your local time:

Agenda

Extracted from web-server-frameworks-agenda labelled issues and pull requests from nodejs/web-server-frameworks prior to the meeting.

  • meeting: discuss gaps in autogenerated meeting #46
  • http: IncomingMessage does not emit error on premature close #41
  • Discuss modules in CITGM #35
  • Improved set header and set cookie experience #32
  • 'stream' vs 'request' API #19

Invited

@nodejs/web-server-frameworks

Links

Joining the meeting

Returning a `res` object

This is related to a comment I left on a gist that was posted somewhere here; I'm interested in the ability to return a ServerResponse object, instead of using a created one. I have a library, http-transform, that allows you to do this (more-or-less, see below).

An upside to this is it lets you use pipe(), a downside is you don't know the capabilities of the receiving end (if it's HTTP/1.1, HTTP/2, etc). However, that responses use completely generic HTTP semantics instead of encoding-specific semantics could itself be seen as an upshot in some cases.

This is likely a poor way to do all Node.js HTTP responses, but it seems to me a framework should be able to do things this way.

I'm looking to discuss some of the limitations of Node.js that make this difficult, like in the http and stream modules. Is this a good topic for discussion?

Book keeping for February-April

Creating this issue as a remind to myself to complete some of the necessary book keeping for our previous 2 two meetings.

#40
#36

The main task is to review the discussions of each meeting, update relevant issues, and start closing out some of the open issues in the repo.

I do have time to work on this before our next meeting so this will be completed by then.

Future of HTTP Technical Plan

Follow up issue from OpenJS World collab summit discussion.

This issue will track the work on planning the technical work for the future http modules discussed during our collab summit.

I'll leave it to @jasnell to kick us off ๐Ÿ˜„

Node.js Foundation Web Server Team Meeting 2020-04-16

Date/Time

Timezone Date/Time
America/Los_Angeles Thu 16-Apr-2020 06:00 (06:00 AM)
America/Denver Thu 16-Apr-2020 07:00 (07:00 AM)
America/Chicago Thu 16-Apr-2020 08:00 (08:00 AM)
America/New_York Thu 16-Apr-2020 09:00 (09:00 AM)
Europe/London Thu 16-Apr-2020 14:00 (02:00 PM)
Europe/Amsterdam Thu 16-Apr-2020 15:00 (03:00 PM)
Europe/Moscow Thu 16-Apr-2020 16:00 (04:00 PM)
Asia/Kolkata Thu 16-Apr-2020 18:30 (06:30 PM)
Asia/Shanghai Thu 16-Apr-2020 21:00 (09:00 PM)
Asia/Tokyo Thu 16-Apr-2020 22:00 (10:00 PM)
Australia/Sydney Thu 16-Apr-2020 23:00 (11:00 PM)

Or in your local time:

Agenda

Extracted from web-server-frameworks-agenda labelled issues and pull requests from nodejs/web-server-frameworks prior to the meeting.

  • Discuss modules in CITGM #35
  • Improved set header and set cookie experience #32
  • 'stream' vs 'request' API #19
  • docs: join instructions in README.md #4

Invited

@nodejs/web-server-frameworks

Links

  • Minutes:

Joining the meeting

1st party integration with user protocols

Is it the right time or place to consider tighter, unified integrations with a subset of prominent user protocols, such as Graphql and grpc ?

The premise being that most web frameworks are built with REST at the core and other protocols are loaded as plugins.

Node.js Foundation Web Server Team Meeting 2020-07-30

Date/Time

Timezone Date/Time
America/Los_Angeles Thu 30-Jul-2020 10:00 (10:00 AM)
America/Denver Thu 30-Jul-2020 11:00 (11:00 AM)
America/Chicago Thu 30-Jul-2020 12:00 (12:00 PM)
America/New_York Thu 30-Jul-2020 13:00 (01:00 PM)
Europe/London Thu 30-Jul-2020 18:00 (06:00 PM)
Europe/Amsterdam Thu 30-Jul-2020 19:00 (07:00 PM)
Europe/Moscow Thu 30-Jul-2020 20:00 (08:00 PM)
Asia/Kolkata Thu 30-Jul-2020 22:30 (10:30 PM)
Asia/Shanghai Fri 31-Jul-2020 01:00 (01:00 AM)
Asia/Tokyo Fri 31-Jul-2020 02:00 (02:00 AM)
Australia/Sydney Fri 231-Jul-2020 03:00 (03:00 AM)

Or in your local time:

Agenda

Extracted from web-server-frameworks-agenda labelled issues and pull requests from nodejs/web-server-frameworks prior to the meeting.

  • Future of HTTP Technical Plan #55
  • Future of HTTP Organization Plan #54

Invited

@nodejs/web-server-frameworks

Links

  • Minutes:

Joining the meeting

Node.js Foundation Web Server Team Meeting 2020-09-17

Date/Time

Timezone Date/Time
America/Los_Angeles Thu 17-Sep-2020 10:00 (10:00 AM)
America/Denver Thu 17-Sep-2020 11:00 (11:00 AM)
America/Chicago Thu 17-Sep-2020 12:00 (12:00 PM)
America/New_York Thu 17-Sep-2020 13:00 (01:00 PM)
Europe/London Thu 17-Sep-2020 18:00 (06:00 PM)
Europe/Amsterdam Thu 17-Sep-2020 19:00 (07:00 PM)
Europe/Moscow Thu 17-Sep-2020 20:00 (08:00 PM)
Asia/Kolkata Thu 17-Sep-2020 22:30 (10:30 PM)
Asia/Shanghai Fri 18-Sep-2020 01:00 (01:00 AM)
Asia/Tokyo Fri 18-Sep-2020 02:00 (02:00 AM)
Australia/Sydney Fri 18-Sep-2020 03:00 (03:00 AM)

Or in your local time:

Agenda

Extracted from web-server-frameworks-agenda labelled issues and pull requests from nodejs/web-server-frameworks prior to the meeting.

  • discuss the future of HTTP client and Undici #66
  • Future of HTTP Technical Plan #55
  • Future of HTTP Organization Plan #54

Invited

@nodejs/web-server-frameworks

Links

  • Minutes:

Joining the meeting

Discuss modules in CITGM

On the Express TC meeting we discussed testing for our dependencies, especially for v5 and were thinking we need a better way to integrate groups of modules to CITGM. What do other frameworks do for this?

Node.js Web Server Frameworks Team Meeting 2020-04-30

Date/Time

Timezone Date/Time
America/Los_Angeles Thu 30-Apr-2020 10:00 (10:00 AM)
America/Denver Thu 30-Apr-2020 11:00 (11:00 AM)
America/Chicago Thu 30-Apr-2020 12:00 (12:00 PM)
America/New_York Thu 30-Apr-2020 13:00 (01:00 PM)
Europe/London Thu 30-Apr-2020 18:00 (06:00 PM)
Europe/Amsterdam Thu 30-Apr-2020 19:00 (07:00 PM)
Europe/Moscow Thu 30-Apr-2020 20:00 (08:00 PM)
Asia/Kolkata Thu 30-Apr-2020 22:30 (10:30 PM)
Asia/Shanghai Fri 01-May-2020 01:00 (01:00 AM)
Asia/Tokyo Fri 01-May-2020 02:00 (02:00 AM)
Australia/Sydney Fri 01-May-2020 03:00 (03:00 AM)

Or in your local time:

Agenda

Extracted from web-server-frameworks-agenda labelled issues and pull requests from nodejs/web-server-frameworks prior to the meeting.

  • http: response does not emit error on premature close #41
  • Improved set header and set cookie experience #32
  • Discuss modules in CITGM #35
  • 'stream' vs 'request' API #19
  • docs: join instructions in README.md #4

Invited

@nodejs/web-server-frameworks

Links

Joining the meeting

Improved set header and set cookie experience

In a recent thread on the cookie module it became clear that the core setHeader api is not very optimal for some use cases. The main issue is that it does not support progressively adding multiple headers of the same name. The set-cookie header is the most clear example of this because applications often set multiple cookies in one response.

I think there is opportunity to pull some of the behaviors of cookie and cookies into the setHeader method. If we were able to "append header" it would help with the progressive addition of set-cookie headers.

But I wanted to also field the idea of moving a full cookie parsing implementation into node. Is there a clear reason why this is a bad idea? I recognize that small core is a feature, but the ease of a using doing res.setCookie('token', '...') seems to be pretty compelling IMO.

Define Scope

I would like to propose an agenda item for the first meeting wherein the team defines the scope of what we are trying to accomplish and what constitutes a web-server-framework. We have a fine starting place as outlined within the goals, but a more specific scope will help us further narrow the work and expectations of our community.

As a starting place I offer the following questions that I feel should be considered...

  1. What is the team specifically trying to accomplish?
  2. What qualities define a web server-framework?
  3. What are some of the known issues that web-server-frameworks have that could be addressed or advocated by this team?
  4. What is the definition of success for this team?

Thoughts and discussion welcome.

Future of HTTP High Level API Design

To continue our discussion from the meeting today, we want to have an API design for the "mid-teir" which frameworks can build on top. To get started on this, we need to setup a deep dive discussion. Topics for that agenda:

  1. What is our design philosophy (small core, usable end user api, etc)?
  2. Do we prioritize compatibility with similar web standard apis?
  3. What is our balance between performance and developer expirence?

Once we have established that, I think we can start digging into more specifics like:

  1. Should we offer a cookie setter/getter api?
  2. Should we have a send like file server?
  3. Do we expose stream apis, hooks, etc?

The question I have is, do we want to use the regularly scheduled meeting for this? Thursday, August 6โ‹…6:00 โ€“ 7:00am PST?

Node.js Foundation Web Server Team Meeting 2020-06-25

Date/Time

Timezone Date/Time
America/Los_Angeles Thu 25-Jun-2020 10:00 (10:00 AM)
America/Denver Thu 25-Jun-2020 11:00 (11:00 AM)
America/Chicago Thu 25-Jun-2020 12:00 (12:00 PM)
America/New_York Thu 25-Jun-2020 13:00 (01:00 PM)
Europe/London Thu 25-Jun-2020 18:00 (06:00 PM)
Europe/Amsterdam Thu 25-Jun-2020 19:00 (07:00 PM)
Europe/Moscow Thu 25-Jun-2020 20:00 (08:00 PM)
Asia/Kolkata Thu 25-Jun-2020 22:30 (10:30 PM)
Asia/Shanghai Fri 26-Jun-2020 01:00 (01:00 AM)
Asia/Tokyo Fri 26-Jun-2020 02:00 (02:00 AM)
Australia/Sydney Fri 26-Jun-2020 03:00 (03:00 AM)

Or in your local time:

Agenda

Extracted from web-server-frameworks-agenda labelled issues and pull requests from nodejs/web-server-frameworks prior to the meeting.

  • Discuss modules in CITGM #35
  • Improved set header and set cookie experience #32

Invited

@nodejs/web-server-frameworks

Links

  • Minutes:

Joining the meeting

Add @styfle to membership

Any community member or contributor can ask that something be added to the next meeting's agenda by logging a GitHub Issue. Any Collaborator, Team member or the moderator can add the item to the agenda by adding the web-server-frameworks-agenda tag to the issue.

๐Ÿ‘‹ I would like to join

Node.js Foundation Web Server Team Meeting 2020-08-06

Date/Time

Timezone Date/Time
America/Los_Angeles Thu 06-Aug-2020 06:00 (06:00 AM)
America/Denver Thu 06-Aug-2020 07:00 (07:00 AM)
America/Chicago Thu 06-Aug-2020 08:00 (08:00 AM)
America/New_York Thu 06-Aug-2020 09:00 (09:00 AM)
Europe/London Thu 06-Aug-2020 14:00 (02:00 PM)
Europe/Amsterdam Thu 06-Aug-2020 15:00 (03:00 PM)
Europe/Moscow Thu 06-Aug-2020 16:00 (04:00 PM)
Asia/Kolkata Thu 06-Aug-2020 18:30 (06:30 PM)
Asia/Shanghai Thu 06-Aug-2020 21:00 (09:00 PM)
Asia/Tokyo Thu 06-Aug-2020 22:00 (10:00 PM)
Australia/Sydney Thu 06-Aug-2020 23:00 (11:00 PM)

Or in your local time:

Agenda

Extracted from web-server-frameworks-agenda labelled issues and pull requests from nodejs/web-server-frameworks prior to the meeting.

  • Future of HTTP Technical Plan #55
  • Future of HTTP Organization Plan #54

Invited

@nodejs/web-server-frameworks

Links

  • Minutes:

Joining the meeting

Future of HTTP Organization Plan

Follow up issue from OpenJS World collab summit discussion.

This issue will track the work on planning the organization that will potentially manage http related modules.

Node.js Foundation Web Server Team Meeting 2020-10-01

Date/Time

Timezone Date/Time
America/Los_Angeles Thu 01-Oct-2020 10:00 (10:00 AM)
America/Denver Thu 01-Oct-2020 11:00 (11:00 AM)
America/Chicago Thu 01-Oct-2020 12:00 (12:00 PM)
America/New_York Thu 01-Oct-2020 13:00 (01:00 PM)
Europe/London Thu 01-Oct-2020 18:00 (06:00 PM)
Europe/Amsterdam Thu 01-Oct-2020 19:00 (07:00 PM)
Europe/Moscow Thu 01-Oct-2020 20:00 (08:00 PM)
Asia/Kolkata Thu 01-Oct-2020 22:30 (10:30 PM)
Asia/Shanghai Fri 02-Oct-2020 01:00 (01:00 AM)
Asia/Tokyo Fri 02-Oct-2020 02:00 (02:00 AM)
Australia/Sydney Fri 02-Oct-2020 03:00 (03:00 AM)

Or in your local time:

Agenda

Extracted from web-server-frameworks-agenda labelled issues and pull requests from nodejs/web-server-frameworks prior to the meeting.

  • Future of HTTP High Level API Design #60
  • Future of HTTP Technical Plan #55
  • Future of HTTP Organization Plan #54

Invited

@nodejs/web-server-frameworks

Links

  • Minutes:

Joining the meeting

Review Governance

I put together some basic governance to work off of. It includes:

  • how to add new members
  • frequency of meetings and where meetings take place
    • policy for adding agenda items included
  • consensus seeking process
  • pull-request review practices
    • fast-track policy included

This is based on how we've done things in other teams, but you might not all like how it's laid out. So consider this issue a way of making it clear that y'all can change this as much or as little as you like.

Session at OpenJS Collaborator Summit

I would like to organize a session on the OpenJS Collaborator Summit about HTTP & HTTP2 & HTTP3 evolution in Node.js and invite both framework maintainers and Node.js collaborators to share their perspective.

Will that be of interest? Or do we think we could cover this during normal calls?

cc @nodejs/http as well.

Node.js Foundation Web Server Team Meeting 2020-07-09

Date/Time

Timezone Date/Time
America/Los_Angeles Thu 09-Jul-2020 06:00 (06:00 AM)
America/Denver Thu 09-Jul-2020 07:00 (07:00 AM)
America/Chicago Thu 09-Jul-2020 08:00 (08:00 AM)
America/New_York Thu 09-Jul-2020 09:00 (09:00 AM)
Europe/London Thu 09-Jul-2020 14:00 (02:00 PM)
Europe/Amsterdam Thu 09-Jul-2020 15:00 (03:00 PM)
Europe/Moscow Thu 09-Jul-2020 16:00 (04:00 PM)
Asia/Kolkata Thu 09-Jul-2020 18:30 (06:30 PM)
Asia/Shanghai Thu 09-Jul-2020 21:00 (09:00 PM)
Asia/Tokyo Thu 09-Jul-2020 22:00 (10:00 PM)
Australia/Sydney Thu 09-Jul-2020 23:00 (11:00 PM)

Or in your local time:

Agenda

Extracted from web-server-frameworks-agenda labelled issues and pull requests from nodejs/web-server-frameworks prior to the meeting.

  • Future of HTTP Organization Plan #54
  • Future of HTTP Technical Plan #55
  • Discuss modules in CITGM #35
  • Improved set header and set cookie experience #32

Invited

@nodejs/web-server-frameworks

Links

Joining the meeting

Node.js Foundation Web Server Team Meeting 2020-10-15

Date/Time

Timezone Date/Time
America/Los_Angeles Thu 15-Oct-2020 10:00 (10:00 AM)
America/Denver Thu 15-Oct-2020 11:00 (11:00 AM)
America/Chicago Thu 15-Oct-2020 12:00 (12:00 PM)
America/New_York Thu 15-Oct-2020 13:00 (01:00 PM)
Europe/London Thu 15-Oct-2020 18:00 (06:00 PM)
Europe/Amsterdam Thu 15-Oct-2020 19:00 (07:00 PM)
Europe/Moscow Thu 15-Oct-2020 20:00 (08:00 PM)
Asia/Kolkata Thu 15-Oct-2020 22:30 (10:30 PM)
Asia/Shanghai Fri 16-Oct-2020 01:00 (01:00 AM)
Asia/Tokyo Fri 16-Oct-2020 02:00 (02:00 AM)
Australia/Sydney Fri 16-Oct-2020 04:00 (04:00 AM)

Or in your local time:

Agenda

Extracted from web-server-frameworks-agenda labelled issues and pull requests from nodejs/web-server-frameworks prior to the meeting.

  • URL's on incoming requests #71
  • discuss the future of HTTP client and Undici #66
  • Future of HTTP High Level API Design #60
  • Future of HTTP Technical Plan #55
  • Future of HTTP Organization Plan #54

Invited

@nodejs/web-server-frameworks

Links

Joining the meeting

URL's on incoming requests

Initial context: nodejs/node#12682

I think the new api's should use URL as the basis for req.url (or whatever equivalent we expose). As you can see from the thread above, there is some question about how today these are relative urls and the new spec does not support that. My thought, and what I think we need to discuss, is that the "base" should be derived from the incoming request headers and fall back to the server address.

If we come to an agreement on this I am happy to write up a more detailed description. Agenda added so we can discuss in the next meeting as well.

Handling of request context scope

It's a common use case to need access to the request data, (ex: headers) further down the user code, or to want to store stateful information that is scoped to a specific request. - this is a concept present in other languages (like PHP), or is a use of thread caching in Java, for example.

There are multiple ways to do this right now, either via the domains API, continuation-local-storage or cls-hooked. Unfortunately, these are either deprecated or introduce weird behaviors, memory leaks and a significant performance overhead.

I'm opening this to debate that this is an obstacle that API developers simply have to deal with, or if there's room for improvement in Node/ Web frameworks.

Update member list

I've automated the process of updating the member list using ncu-team sync (included with node-core-utils). There are still 12 members who have to accept the invite before they will be included in the list, and the list will need to be manually updated.

This issue to to make sure that doesn't get missed (and that those 12 7 don't feel left out โค๏ธ)

edit: more accepted I've update count

Hypermedia / HATEOAS

While HTTP APIs are very popular today, REST, Hypermedia and HATEOAS - while offering many great opportunities for API developers and consumers - never got broadly adopted.

Having build Hypermedia/HATEOAS APIs in .NET and Node.js with several customers one of the biggest issues I experienced was that there was no common way to create Hypermedia across frameworks/libraries even on the same platform.

Having native support for common Hypermedia formats like Siren, Ion, HAL, CJ and HTTP Problem Details should make it easier for developers to build truly Restful APIs and gain benefits with almost no efforts.

Phil Sturgeon recently has written an great sum up what web frameworks should support today to build great APIs.

A while a go I've implemented a modular set of libraries to create HTTP Problem Details (RFC 7807) which consists of two HTTP framework agnostic libraries:

For use with e.g. express, there exists express-http-problem-details - another library, which is a express middleware that handles errors in requests and returns HTTP Problem documents created using the convention defined in http-problem-details-mapper.

I think there should be common support for creation of Hypermedia Documents based on Hypermedia factors so that folks who invent their own Hypermedia type could easily build support for every web framework.

Node.js Foundation Web Server Team Meeting 2020-01-24

http/1 - Client Request & Response

I find the current design of having a req and res API a bit unfortunate.

Currently they act as if they would be decoupled. However, this is not the case and it becomes very obvious during destroy().

Consider the following:

const req = http.request(...)
src.pipe(req)
req.on('finish', () => {
  req.on('close', common.mustCall());
  req.on('error', common.mustNotCall());

  // ... later

  // I would expect this to `autoDestroy` here.
  req.res.destroy(new Error('kaboom')); // This error is propagated to the request object, even though it was successful i.e. 'finish'?
}):

And vice versa: destroying the request after it has "completed" would destroy the response.

This has recently become a bit more obvious to me given recent issues with pipeline which has to have special cases for these objects due to this coupling.

What is the route we would prefer here:

  1. Just leave it as is.
  2. Try to decouple the two objects, i.e. when the request has 'finish':ed it decouples it self from the socket/response and destroys itself, as a normal stream, and the response lives its own life.
  3. Try to convert the Request object in a Duplex where it would just emit itself on 'response' as a compat.

Currently the API is some kind of hybrid of 2 and 3, i.e. it behaves as if the two objects were a single Duplex instance, but they look like two separate streams.

http: IncomingMessage does not emit error on premature close

This is an issue that got stuck in the Node repo due to concerns of breaking the ecosystem. Thought it might be worth a quick look in this group to see whether we find a solution we haven't considered yet?

The problem here is that instead of emitting an ECONNRESET 'error' on the IncomingMessage object we emit 'aborted' which is surprising when the object is sent in a function that expects a regular stream.

function myStreamProcessor(stream, cb) {
  // Stream logic that will deadlock if stream 
  // is an `IncomingMessage` since it does not listen to `'aborted'`
  stream
    .on('error, cb)
    .on('data', /* do something */)
    .on('end', cb)
}

The current workaround, which is probably good enough for most cases, is to encourage usage of pipeline which properly handles/normalizes this issue.

This is not a totally uncommon issue, e.g. I saw it recently at https://github.com/szmarczak/http-timer (3,233,355 weekly downloads) where an 'aborted' listener is missing and instead an 'error' listener is registered.

nodejs/node#28172 (issue)
nodejs/node#28677 (closed proposal PR)

I would recommend a read through of the comments for PR above to understand existing concerns.

Alignment on meeting dates and time(s)

Hi folks,

I would like to align on the recurring meeting days and time.

Should we have 2 alternating times (6am PST and 10am PST), like the package maintenance WG?

I specifically mentioned 6am and 10am PST because our previous meeting was 6am and 10am was the most voted time on the Doodle. Not sure if 6am works well for everyone in California.

Should we have another vote?

http2 compat

Is it working well? What's the experience? Do we have any significant issues to address?

Node.js Foundation Web Server Team Meeting 2020-08-20

Date/Time

Timezone Date/Time
America/Los_Angeles Thu 20-Aug-2020 10:00 (10:00 AM)
America/Denver Thu 20-Aug-2020 11:00 (11:00 AM)
America/Chicago Thu 20-Aug-2020 12:00 (12:00 PM)
America/New_York Thu 20-Aug-2020 13:00 (01:00 PM)
Europe/London Thu 20-Aug-2020 18:00 (06:00 PM)
Europe/Amsterdam Thu 20-Aug-2020 19:00 (07:00 PM)
Europe/Moscow Thu 20-Aug-2020 20:00 (08:00 PM)
Asia/Kolkata Thu 20-Aug-2020 22:30 (10:30 PM)
Asia/Shanghai Fri 21-Aug-2020 01:00 (01:00 AM)
Asia/Tokyo Fri 21-Aug-2020 02:00 (02:00 AM)
Australia/Sydney Fri 21-Aug-2020 03:00 (03:00 AM)

Or in your local time:

Agenda

Extracted from web-server-frameworks-agenda labelled issues and pull requests from nodejs/web-server-frameworks prior to the meeting.

  • Future of HTTP Technical Plan #55
  • Future of HTTP Organization Plan #54

Invited

@nodejs/web-server-frameworks

Links

  • Minutes:

Joining the meeting

Node.js Foundation Web Server Team Meeting 2020-06-11

Date/Time

Timezone Date/Time
America/Los_Angeles Thu 11-Jun-2020 06:00 (06:00 AM)
America/Denver Thu 11-Jun-2020 07:00 (07:00 AM)
America/Chicago Thu 11-Jun-2020 08:00 (08:00 AM)
America/New_York Thu 11-Jun-2020 09:00 (09:00 AM)
Europe/London Thu 11-Jun-2020 14:00 (02:00 PM)
Europe/Amsterdam Thu 11-Jun-2020 15:00 (03:00 PM)
Europe/Moscow Thu 11-Jun-2020 16:00 (04:00 PM)
Asia/Kolkata Thu 11-Jun-2020 18:30 (06:30 PM)
Asia/Shanghai Thu 11-Jun-2020 21:00 (09:00 PM)
Asia/Tokyo Thu 11-Jun-2020 22:00 (10:00 PM)
Australia/Sydney Thu 11-Jun-2020 23:00 (11:00 PM)

Or in your local time:

Agenda

Extracted from web-server-frameworks-agenda labelled issues and pull requests from nodejs/web-server-frameworks prior to the meeting.

  • Discuss modules in CITGM #35
  • Improved set header and set cookie experience #32

Invited

@nodejs/web-server-frameworks

Links

  • Minutes:

Joining the meeting

Node.js Foundation Web Server Team Meeting 2020-06-25

Date/Time

Timezone Date/Time
America/Los_Angeles Thu 25-Jun-2020 10:00 (10:00 AM)
America/Denver Thu 25-Jun-2020 11:00 (11:00 AM)
America/Chicago Thu 25-Jun-2020 12:00 (12:00 PM)
America/New_York Thu 25-Jun-2020 13:00 (01:00 PM)
Europe/London Thu 25-Jun-2020 18:00 (06:00 PM)
Europe/Amsterdam Thu 25-Jun-2020 19:00 (07:00 PM)
Europe/Moscow Thu 25-Jun-2020 20:00 (08:00 PM)
Asia/Kolkata Thu 25-Jun-2020 22:30 (10:30 PM)
Asia/Shanghai Fri 26-Jun-2020 01:00 (01:00 AM)
Asia/Tokyo Fri 26-Jun-2020 02:00 (02:00 AM)
Australia/Sydney Fri 26-Jun-2020 03:00 (03:00 AM)

Or in your local time:

Agenda

Extracted from web-server-frameworks-agenda labelled issues and pull requests from nodejs/web-server-frameworks prior to the meeting.

  • Discuss modules in CITGM #35
  • Improved set header and set cookie experience #32

Invited

@nodejs/web-server-frameworks

Links

  • Minutes:

Joining the meeting

Node.js Foundation Web Server Team Meeting 2020-05-14

Date/Time

Timezone Date/Time
America/Los_Angeles Thu 14-May-2020 06:00 (06:00 AM)
America/Denver Thu 14-May-2020 07:00 (07:00 AM)
America/Chicago Thu 14-May-2020 08:00 (08:00 AM)
America/New_York Thu 14-May-2020 09:00 (09:00 AM)
Europe/London Thu 14-May-2020 14:00 (02:00 PM)
Europe/Amsterdam Thu 14-May-2020 15:00 (03:00 PM)
Europe/Moscow Thu 14-May-2020 16:00 (04:00 PM)
Asia/Kolkata Thu 14-May-2020 18:30 (06:30 PM)
Asia/Shanghai Thu 14-May-2020 21:00 (09:00 PM)
Asia/Tokyo Thu 14-May-2020 22:00 (10:00 PM)
Australia/Sydney Thu 14-May-2020 23:00 (11:00 PM)

Or in your local time:

Agenda

Extracted from web-server-frameworks-agenda labelled issues and pull requests from nodejs/web-server-frameworks prior to the meeting.

  • http: IncomingMessage does not emit error on premature close #41
  • Discuss modules in CITGM #35
  • Improved set header and set cookie experience #32
  • 'stream' vs 'request' API #19
  • docs: join instructions in README.md #4

Invited

@nodejs/web-server-frameworks

Links

  • Minutes:

Joining the meeting

Node.js Foundation Web Server Team Meeting 2020-09-03

Date/Time

Timezone Date/Time
America/Los_Angeles Thu 03-Sep-2020 10:00 (10:00 AM)
America/Denver Thu 03-Sep-2020 11:00 (11:00 AM)
America/Chicago Thu 03-Sep-2020 12:00 (12:00 PM)
America/New_York Thu 03-Sep-2020 13:00 (01:00 PM)
Europe/London Thu 03-Sep-2020 18:00 (06:00 PM)
Europe/Amsterdam Thu 03-Sep-2020 19:00 (07:00 PM)
Europe/Moscow Thu 03-Sep-2020 20:00 (08:00 PM)
Asia/Kolkata Thu 03-Sep-2020 22:30 (10:30 PM)
Asia/Shanghai Fri 04-Sep-2020 01:00 (01:00 AM)
Asia/Tokyo Fri 04-Sep-2020 02:00 (02:00 AM)
Australia/Sydney Fri 04-Sep-2020 03:00 (03:00 AM)

Or in your local time:

Agenda

Extracted from web-server-frameworks-agenda labelled issues and pull requests from nodejs/web-server-frameworks prior to the meeting.

  • Future of HTTP Technical Plan #55
  • Future of HTTP Organization Plan #54

Invited

@nodejs/web-server-frameworks

Links

  • Minutes:

Joining the meeting

Node.js Foundation Web Server Team Meeting 2020-03-19

Time

UTC Thu 19-Mar-2020 13:00 (01:00 PM):

Links

Agenda

web-server-frameworks-agenda

  • Improved set header and set cookie experience #32
  • 'stream' vs 'request' API #19
  • docs: join instructions in README.md #4
  • Review Governance #1
  • Disucss modules in CITGM #35

Invited

Observers/Guests

Joining the meeting

Deep Dive: new low level net apis

The next steps on #55 is to understand the underlying apis we will build on top of. Anyone who is interested in this effort, please react below with the time which works best for you.

๐Ÿ‘ Friday Sept 11th @ 2pm ET (11pm PT)
๐ŸŽ‰ Friday Sept 11th @ 3pm ET (12pm PT)
โค๏ธ Monday Sept 14th @ 12pm ET (8am PT)

This is super informal, and to not put too much pressure on @jasnell I hope only folks deeply invested in helping with this effort will join. If James is alright maybe we can record the session for layer viewing.

cc: @nodejs/web-server-frameworks

Assume ownership of low level http packages

NOTE: This is a proposal for discussion. The goal here is to help the team have a conversation around if this is something we would ever want. If the team decides yes, then we could move forward with making it part of the goals and charter and discuss more broadly in the community what this would change.

Would it be productive to pull many low level http related packages under the ownership and governance of Node core? Today the most popular ones live in the jshttp org which is managed by the Express team. Due to this relationship it is common for good additions to be held up or declined because of compatibility issues with Express apis. I am also aware that most of the other popular frameworks have re-implemented some of these for this reason.

I think a better long term model could be for a group like ours to maintain these under the governance of node core. This would mean support sustainability, group ownership of technical direction and added legitimacy and visibility to the packages. The biggest downside I see is migrating the ecosystem is difficult, but I am sure there are other issues to address.

Things to discuss:

  • Should this even be considered as a part of the scope for the team?
  • We could request a charter from Node to manage these
  • How would we pull the existing packages into this? Fork, move repos, re-implement?
  • What prior art is there on a node team or wg managing specific packages?

'stream' vs 'request' API

In http2 we got a new API for handling requests where instead of emitting a 'request' event with a request and response object we emit 'stream' with a stream object.

  • Is the ecosystem interested into moving towards this API?
  • What are the advantages/disadvantages?
  • How can we help with this transition? Would a forwards compat layer be possible/helpful/make sense?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.