Platform Parity
The Platform Parity project attempted to replicate the browser environment in node as closely as possible.
Frustrated with the fact that the JavaScript ecosystem is split in half between the browser and node, I set out to replicate the browser environment in node as closely as possible (reaching “parity”).
There are many browser APIs that do similar things as node, such as
- Fetch API — HTTP requests,
- Streams API — streams
- Service Worker API — servers/responding to requests
- Web Crypography — crypto
- IndexedDB — database abstraction
- …
Many independent libraries exist to fill these gaps (requests, streams, cryptography) but so far there has been no unifying library to pull them together.
Unfortunately, progress was halted due to
- the performace impact of loading many libraries at startup
- bugs related to patching the global object
- the difficulty of implementing browser standards correctly
In order to revive the project, it would have to be part of serverless offering similar to CloudFlare Workers or Netlify Functions. Instead of patching node, it would have to run in it’s own environment. Hints should be taken form deno.