Happy Dom

Happy DOM is a JavaScript implementation of a web browser without its graphical user interface. It includes many web standards from WHATWG DOM and HTML.
Alternatives To Happy Dom
Project NameStarsDownloadsRepos Using ThisPackages Using ThisMost Recent CommitTotal ReleasesLatest ReleaseOpen IssuesLicenseLanguage
Wpt4,502
8 hours ago2,459otherHTML
Test suites for Web platform specs — including WHATWG, W3C, and others
Happy Dom2,45841,71611 hours ago441October 27, 2023135mitTypeScript
Happy DOM is a JavaScript implementation of a web browser without its graphical user interface. It includes many web standards from WHATWG DOM and HTML.
Dom1,474
a month ago193otherHTML
DOM Standard
Eventlisteneroptions1,090
6 years ago8otherJavaScript
An extension to the DOM event pattern to allow authors to disable support for preventDefault
Observable388
9 hours ago30otherBikeshed
Observable API proposal
Htmlkit207
113 years ago19October 22, 20185mitHTML
An Objective-C framework for your everyday HTML needs.
Gammo181
2 years ago3October 24, 20211mitRuby
A pure Ruby HTML5-compliant parser with CSS selector and XPath 1.0 traversal
Abort Controller1557,5961,6184 years ago11March 30, 20195mitTypeScript
An implementation of WHATWG AbortController interface.
Purescript Web Dom34
21a month agoJanuary 25, 202310mitPureScript
Type definitions and low level interface implementations for the W3C DOM spec
Innertext Spec14
7 years ago2otherHTML
Draft specification for DOM "innerText" property
Alternatives To Happy Dom
Select To Compare


Alternative Project Comparisons
Readme

Happy DOM Logo

About

Happy DOM is a JavaScript implementation of a web browser without its graphical user interface. It includes many web standards from WHATWG DOM and HTML.

The goal of Happy DOM is to emulate enough of a web browser to be useful for testing, scraping web sites and server-side rendering.

Happy DOM focuses heavily on performance and can be used as an alternative to JSDOM.

DOM Features

  • Custom Elements (Web Components)

  • Shadow Root (Shadow DOM)

  • Declarative Shadow DOM

  • Mutation Observer

  • Tree Walker

  • Fetch

And much more..

Works With

Module Systems

Documentation

Read more about how to use Happy DOM in our Wiki.

Packages

This repository is a Monorepo. Each package lives under packages/<package>.

Published on npm happy-dom

This package contains the core functionality of Happy DOM.


Published on npm jest-environment

This package makes it possible to use Happy DOM with Jest.


Published on npm global-registrator

A utility that registers Happy DOM globally, which makes it possible to use Happy DOM for testing in a Node environment.


Published on npm uncaught-exception-observer

A utility for observing uncaught exceptions thrown in Happy DOM and dispatch them as events on the Happy DOM window.

Performance

Operation JSDOM Happy DOM
Import / Require 333 ms 45 ms
Parse HTML 256 ms 26 ms
Serialize HTML 65 ms 8 ms
Render custom element 214 ms 19 ms
querySelectorAll('tagname') 4.9 ms 0.7 ms
querySelectorAll('.class') 6.4 ms 3.7 ms
querySelectorAll('[attribute]') 4.0 ms 1.7 ms
querySelectorAll('[class~="name"]') 5.5 ms 2.9 ms
querySelectorAll(':nth-child(2n+1)') 10.4 ms 3.8 ms

See how the test was done here

Contributing

See Contributing Guide.

Sponsors

RTVision

Popular Whatwg Projects
Popular Dom Projects
Popular Collaboration Categories
Related Searches

Get A Weekly Email With Trending Projects For These Categories
No Spam. Unsubscribe easily at any time.
Javascript
Typescript
Html
Reactjs
Vue
Angular
Dom
Jest
Rendering
Webcomponents
Whatwg