Sable is a web-standards focused Javascript runtime with as much tooling built-in as possible. It is meant to be both a learning project and a sort of spiritual sibling to Deno 1.x. Sable is very ambitious and has many goals, but one of the non-goals is support for node modules in any way (outside of transpilation by CDNs).
- Support as many Web Standard API's as possible
- URL Imports
- Go fast
- Native support of TypeScript/TSX/JSX (maybe will be possible in the future with service workers)
- Node/npm support IN ANY SHAPE OR FORM
- Support for
Deno.*
APIs outside of possible shims
Sable's goal is to follow the spirit of what Deno was originally was meant to be, a good JS runtime.
In many regards, this isn't true anymore. Deno supports many features that stray
away from it's web-focused nature which could be considered as turning it's back
away from it's original design goals. Some of the recent decisions have been
controversial in the community and are some things we'd like to avoid
implementing e.g.: npm:
, node:
, jsr:
specifiers, package.json
support
and more.
Node was a great first stab at running real JS applications on the server side but it's age really starts to show. It does have the advantage of being focused and universal, though both of those are becoming less relevant as time goes on. CommonJS continues to drag down the ESM ecosystem in a way that is really unfortunate. It's time to let go of Node.
Please check out this repo.