The Bright Future of io.js
A Community Driven Roadmap
For the community, by the community
io.js is a drop-in replacement for node.js and is compatible with nearly all the modules in npm.
io.js is a community driven open source project. It was started by the primary contributors to node.js but in the first few months attracted more active developers than the node.js project has had in its entire history.
What do people want from io.js?
- Transparency (Debugging and Tracing)
- Better Streams
- Long Term Support
- Embrace Ongoing Standards
Concerns list compiled from the roadmap project. Contributors welcome!
We have the largest package ecosystem of any language, we can't break it.
- We do not remove JS API.
- Semantic Versioning
- Any API addition means a minor version increment.
- Changes in V8's C++ API handled by
nan mean a minor version increment and a major increment if they cannot.
From the Stability Policy section of the Roadmap. Contributors welcome!
||Any versioned build.
Must be stable and ready for production.
||Nightly builds with Canary V8 & other new features.
||Next Generation ES6/7 centric API.
From the Roadmap. Contributors welcome!
NG (Next Generation)
- Will remain backward compatible indefinitely.
- New APIs can be ES6/7 centric without breaking old modules and API.
- Separates work on future API from improvements to the current platform.
NG discussions are ongoing in the NG repo.
Debugging & Tracing
Core should enable a massive and diverse ecosystem of debugging and tracing tools rather than endorse high level abstractions like
- Integrate with
trace_event (New trace API for V8 & Chrome).
- Document and evangelize a debugging ecosystem.
- Unify system tracing endpoint (DTrace, LTTng, etc)
Work being lead by the Tracing Working Group. Contributors welcome!
- Streams Working Group has taken over
readable-stream, which is now the official io.js
- Fix all existing compatibility issues.
- Simplify stream creation to avoid user error.
- Explore WHATWG Streams interface and identify compatibility issues.
- Improve stream performance.
Work being lead by the Streams Working Group. Contributors welcome!
Long Term Support
- New release lines will ship with stable and supported dependencies.
- Patch releases of older versions will be published for as long as people are actively contributing.
- io.js will take responsibility for old versions of dependencies like V8 that appear in prior releases when their maintainers stop supporting them.
Summary from Stability Policy. Contributors welcome!
- Reduce impact of including
icu (binary and memory footprint).
- Foster a vibrant localization community.
- Autonomous language communities (30+ registered so far)
- Evangelism efforts to grow membership (160+ members so far)
- Improve tooling for translating website, API docs, installers and slide decks.
You can get involved by joining the community for your language :)
Fork me on Github