Roadmap
Planned features, milestones, and the future direction of the dawm project.
Current Status (v0.1.x)
The dawm library is in active development with a stable core feature set:
✅ Completed
- Core DOM API —
Document,Element,Node,Attr,Text,Comment,CDATASection,ProcessingInstruction,DocumentFragment,DocumentType. - Collections —
NodeList,HTMLCollection,NamedNodeMap,DOMTokenList,DOMStringMap. - Parsing —
parseHTML,parseDocument,parseFragment,DOMParser,Document.parseHTML,Document.parseXML. - Serialization —
XMLSerializer,Element.outerHTML,Element.innerHTML. - Querying —
querySelector,querySelectorAll,getElementById,getElementsByClassName,getElementsByTagName,getElementsByName. - Tree Manipulation —
appendChild,removeChild. - Multi-runtime support — Deno, Bun, Node.js, Cloudflare Workers.
- Zero dependencies — No external packages required.
Short Term (v0.2.x)
🔜 In Progress
Element.setHTML— Safe HTML setter with sanitization (HTML Sanitizer API).Element.getHTML— Serialization with declarative shadow DOM support.Element.insertAdjacentHTML— Insert HTML relative to an element.- Extended tree manipulation —
replaceChild,insertBefore,cloneNode(deep),normalize. TreeWalkerandNodeIterator— DOM traversal interfaces.MutationObserver— Observe and react to DOM changes.- Performance benchmarks — Comprehensive benchmarks against JSDOM, linkedom, happy-dom, and others.
Medium Term (v0.3.x)
📋 Planned
RangeandSelection— DOM Range API for working with document selections.- CSS Typed OM —
element.stylewith typed CSS property access. StyleSheetListandMediaList— CSS-related collection types.createTreeWalker/createNodeIterator— Document-level traversal factories.- Streaming parser — Parse large documents incrementally without loading the entire string into memory.
- HTML sanitization — Built-in sanitization API for safe HTML processing.
- Extended serialization — Pretty-printing, minification options.
Long Term (v1.0)
🎯 Vision
- Stable API — Finalize and freeze the public API surface.
- Full DOM Level 4 compliance — Complete implementation of the DOM Living Standard.
- Shadow DOM — Support for declarative shadow DOM.
- Custom Elements — Server-side custom element registry.
- Event system — Synthetic event dispatch and handling.
- XPath support — XPath query engine for XML documents.
- Documentation site — Auto-generated API docs synchronized with source code.
- Plugin system — Extensible architecture for custom DOM behaviors.
Contributing
We welcome contributions! If you’d like to help with any of these items:
- Check the GitHub Issues for open tasks.
- Read the contributing guidelines in the repository.
- Submit a pull request — all contributions, big or small, are appreciated.
Feature Requests
Have an idea for a feature? Open an issue on GitHub with the “feature request” label.