This document defines a project titled Oden.js (an anagram of Node and Deno). It is intended to be a way to run "JavaScript" on a server but with the following limitations:
- Only JavaScript features that are beneficial in a server context are retained
- Many existing features are hidden behind
require()calls - This is essentially a fork of JavaScript (via V8)
- This is essentially a fork of Node.js (by modifying APIs)
Overview #
Node.js API Modifications #
Based on the number of modifications required this would need to be implemented as a "hard fork" of Node.js. I don't think it would be feasable to float patches on top of Node.js.
New Internal Modules #
- TODO
Dropped Functionality #
- The
Bufferclass is removed entirely sinceTypedArrayshould suffice. - Either completely remove
require()or completely removeimport. One of CJS or ESM is fine.
JavaScript & V8 Modifications #
I don't know much about V8 but I think it would also need to be a "hard fork" of V8.
Dropped Functionality #
typeofis modified so thattypeof nullreturns the string'null'- TODO: can
evalbe removed entirely? - TODO: explain object stringifying philosophy, returning JSON, Map and Set
History Log
Complete History Log| Operation | Instigator | Revision | When |
|---|---|---|---|
| RFC status changed from review to published | Thomas Hunter II | r13 | |
| An important comment by Thomas Hunter II was dismissed | Thomas Hunter II | r13 | |
| Thomas Hunter II changed their review to abstain | Thomas Hunter II | r13 | |
| Thomas Hunter II added a new important comment | Thomas Hunter II | r13 | |
| Thomas Hunter II changed their review to comment | Thomas Hunter II | r13 | |
| Now being reviewed by Thomas Hunter II | Thomas Hunter II | r13 | |
| No longer being reviewed by Thomas Hunter II | Thomas Hunter II | r13 | |
| Now being reviewed by Thomas Hunter II | Thomas Hunter II | r13 | |
| New RFC revision created: 13 | Thomas Hunter II | r13 | |
| New RFC revision created: 12 | Thomas Hunter II | r12 |
RFC Revision: