Announcing the Web-interoperable Runtimes Community Group
As you know from our previous blog posts on this topic, we think that Deno’s web-interoperability is really important. We go to great lengths to ensure that we don’t have to regularly invent new APIs, but rather use existing standards that web developers are already familiar with from browsers.
User feedback has shown that this web-first approach to our API design is very important to Deno’s users. This makes a lot of sense - it means that when using Deno, you aren’t learning new platform specific APIs or functionalities, but rather you are investing in your knowledge of the largest, and most important platform in the world: the web.
It’s not all sunshine and rainbows, though. Many web platform APIs were designed
with only the browser in mind, and not server side runtimes. This means that
when server side runtimes implement these APIs, they sometimes have to diverge
subtly from the browser implementations and specifications, so the API becomes
useful on the server. A great example of this is fetch
: the API surface itself
works fine on servers, but only when CORS is skipped,
users can manually handle redirects, and
full duplex HTTP streams are supported.
These subtle differences in API behavior exist for all server side
implementations of fetch
, but are often not well documented, and not
consistent across runtimes. To fix this, engineers from Deno, Cloudflare, and a
couple of other companies came together to discuss how we could solve this
problem. We want to make server side runtimes consistent and compatible with
each other.
After a couple months of work, we are now happy to announce the formation of the Web-interoperable Runtimes Community Group (WinterCG). The goal of this new W3C community group is to promote runtimes supporting a comprehensive unified API surface that JavaScript developers can rely on regardless of the runtime they are using: be it browsers, servers, embedded applications, or edge runtimes. The members of the group want to provide a space to better coordinate between browser vendors and other implementors on how web platform APIs can be best implemented and used outside of browsers.
More specifically, we want to document how runtime implementations diverge from each other, and figure out how we can make them more interoperable. We also want to involve the broader web spec community in this process, and provide feedback to spec editors on how specs could be adjusted to better serve a wider range of users across more runtime implementations.
The WinterCG is not a new standards organization. As such we are not going to publish new standards that compete with work from of the existing web standards community. Rather we want to work with spec editors to improve the existing standards in venues like WHATWG and W3C.
You can learn more about the WinterCG on our website: https://wintercg.org.
View Cloudflare’s blog post on this topic here.