# infernojs/inferno

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/infernojs-inferno).**

16,420 stars · 639 forks · JavaScript · MIT

## Links

- GitHub: https://github.com/infernojs/inferno
- Homepage: https://infernojs.org
- awesome-repositories: https://awesome-repositories.com/repository/infernojs-inferno.md

## Description

Inferno is a virtual DOM UI library and high-performance DOM renderer used for building component-based user interfaces. It functions as a server-side rendering engine and a client-side framework that synchronizes application state with the visual interface through a declarative structure.

The project distinguishes itself as a React-compatible UI framework, providing a compatibility layer that allows components designed for other reactive environments to run without modification.

Its capability surface covers virtual DOM management, including node diffing and reconciliation, and a full server-side rendering workflow with client-side hydration. The library also includes tools for component animation orchestration, portal rendering, and the management of component lifecycles.

A command-line interface is available to bootstrap new projects.

## Tags

### User Interface & Experience

- [Virtual DOM Engines](https://awesome-repositories.com/f/user-interface-experience/virtual-dom-engines.md) — Uses a virtual DOM engine to minimize expensive browser mutations through tree reconciliation. ([source](https://github.com/infernojs/inferno/blob/master/README.md))
- [Virtual DOM Rendering Engines](https://awesome-repositories.com/f/user-interface-experience/virtual-dom-rendering-engines.md) — Functions as a high-performance virtual DOM rendering engine that optimizes view updates via minimal mutations. ([source](https://github.com/infernojs/inferno#readme))
- [Component-Based UI Libraries](https://awesome-repositories.com/f/user-interface-experience/component-libraries/component-based-ui-libraries.md) — Offers a library for building interfaces using a declarative, component-based structure.
- [Component Lifecycle Hooks](https://awesome-repositories.com/f/user-interface-experience/component-lifecycle-hooks.md) — Provides lifecycle hooks to execute custom logic during component mounting, updating, and removal. ([source](https://github.com/infernojs/inferno/blob/master/documentation/v6-migration.md))
- [High-Performance Rendering](https://awesome-repositories.com/f/user-interface-experience/high-performance-rendering.md) — Employs high-performance rendering techniques to efficiently display large volumes of simultaneous UI components. ([source](https://infernojs.github.io/inferno/1kcomponents/))
- [Virtual Node Creators](https://awesome-repositories.com/f/user-interface-experience/layout-utilities/presentation-engines/virtual-dom-utilities/virtual-node-creators.md) — Provides hyperscript functions to generate virtual node representations of UI elements. ([source](https://github.com/infernojs/inferno/tree/master/packages/inferno-hyperscript))
- [Virtual Node Trees](https://awesome-repositories.com/f/user-interface-experience/node-based-ui-components/virtual-node-trees.md) — Creates lightweight virtual nodes to build a declarative tree for efficient rendering and updates. ([source](https://github.com/infernojs/inferno/tree/master/packages/inferno-create-element))
- [Component Lifecycle Management](https://awesome-repositories.com/f/user-interface-experience/presentation-frameworks/lifecycle-state-management/component-lifecycle-management.md) — Implements comprehensive lifecycle hooks for managing the mounting, updating, and unmounting of UI components.
- [Reactive UI Frameworks](https://awesome-repositories.com/f/user-interface-experience/reactive-ui-frameworks.md) — Provides a reactive UI framework that automatically updates the visual interface based on state changes.
- [Reactive User Interfaces](https://awesome-repositories.com/f/user-interface-experience/reactive-user-interfaces.md) — Provides a reactive interface that synchronizes application state with the visual document model.
- [User Interface Frameworks](https://awesome-repositories.com/f/user-interface-experience/user-interface-frameworks.md) — Provides a comprehensive framework for building component-based user interfaces that synchronize state with the DOM. ([source](https://github.com/infernojs/inferno#readme))
- [Element Transitioning Mechanisms](https://awesome-repositories.com/f/user-interface-experience/animation-libraries/element-transitioning-mechanisms.md) — Enables smooth transitions for elements moving within a parent container. ([source](https://github.com/infernojs/inferno/tree/master/packages/inferno-animation))
- [Component References](https://awesome-repositories.com/f/user-interface-experience/component-references.md) — Allows direct access to underlying DOM nodes through component references for manual manipulations. ([source](https://github.com/infernojs/inferno#readme))
- [Form Input Handling](https://awesome-repositories.com/f/user-interface-experience/form-input-handling.md) — Synchronizes the state of form elements with component state to ensure a single source of truth. ([source](https://github.com/infernojs/inferno/blob/master/README.md))
- [Node Flag Optimizations](https://awesome-repositories.com/f/user-interface-experience/node-based-ui-components/virtual-node-trees/node-flag-optimizations.md) — Uses node-flagging to optimize the virtual DOM diffing process and increase rendering speed.
- [Portal Rendering](https://awesome-repositories.com/f/user-interface-experience/portal-rendering.md) — Supports mounting UI elements to specific DOM nodes outside the standard component hierarchy. ([source](https://github.com/infernojs/inferno#readme))
- [Animation Transition Components](https://awesome-repositories.com/f/user-interface-experience/ui-components/animation-transition-components.md) — Provides tools to trigger visual animations when components are added to or removed from the DOM. ([source](https://github.com/infernojs/inferno/tree/master/packages/inferno-animation))
- [UI Fragments](https://awesome-repositories.com/f/user-interface-experience/ui-fragments.md) — Uses UI fragments to group multiple elements without introducing additional wrapper nodes into the document. ([source](https://github.com/infernojs/inferno/blob/master/README.md))

### Web Development

- [Virtual DOM Reconciliation](https://awesome-repositories.com/f/web-development/virtual-dom-reconciliation.md) — Implements a high-performance virtual DOM reconciliation algorithm to minimize real DOM mutations.
- [API Compatibility Layers](https://awesome-repositories.com/f/web-development/backend-development/web-frameworks/full-stack-frameworks/react-frameworks/api-compatibility-layers.md) — Provides a compatibility layer that mirrors the React API to run components designed for other reactive environments. ([source](https://github.com/infernojs/inferno/tree/master/packages/inferno-compat))
- [Compatibility Layers](https://awesome-repositories.com/f/web-development/compatibility-layers.md) — Includes a compatibility layer that allows React-designed components to run without modification.
- [Client-Side Hydration](https://awesome-repositories.com/f/web-development/rendering-templating/rendering-patterns/client-side-hydration.md) — Attaches event listeners to server-rendered HTML on the client to make the interface interactive. ([source](https://github.com/infernojs/inferno#readme))
- [Server-Side Rendering](https://awesome-repositories.com/f/web-development/rendering-templating/server-side-rendering.md) — Generates HTML strings on the server to improve initial page load speeds and search engine indexing.
- [Server-Side Renderers](https://awesome-repositories.com/f/web-development/server-side-renderers.md) — Converts virtual node trees into HTML strings for efficient server-side rendering. ([source](https://github.com/infernojs/inferno#readme))
- [Server-Side Rendering](https://awesome-repositories.com/f/web-development/server-side-rendering.md) — Converts virtual nodes into static HTML strings on the server to improve initial page load and SEO.
- [DOM References](https://awesome-repositories.com/f/web-development/browser-integration-utilities/dom-event-handling/dom-references.md) — Allows direct access to underlying DOM nodes via reference APIs for manual visual manipulations. ([source](https://github.com/infernojs/inferno/blob/master/documentation/v6-migration.md))
- [Synthetic Event Systems](https://awesome-repositories.com/f/web-development/browser-integration-utilities/dom-event-handling/synthetic-event-systems.md) — Normalizes browser events through a synthetic system to ensure consistent behavior and reduce memory overhead.

### Graphics & Multimedia

- [FLIP Animations](https://awesome-repositories.com/f/graphics-multimedia/media-production-suites/animation-tools/programmatic-animation-apis/state-transition-animators/flip-animations.md) — Performs global FLIP animations to coordinate component movement across page transitions using unique keys. ([source](https://github.com/infernojs/inferno/tree/master/packages/inferno-animation))

### Software Engineering & Architecture

- [VNode Shape Optimizations](https://awesome-repositories.com/f/software-engineering-architecture/diffing-algorithms/vnode-shape-optimizations.md) — Optimizes rendering speed by predefining child node shapes at compile time to bypass runtime normalization. ([source](https://github.com/infernojs/inferno/blob/master/README.md))

### Part of an Awesome List

- [Related Libraries](https://awesome-repositories.com/f/awesome-lists/devtools/related-libraries.md) — Fast React-like library.
- [User Interface](https://awesome-repositories.com/f/awesome-lists/devtools/user-interface.md) — High-performance React-like UI library.
- [Web Frameworks](https://awesome-repositories.com/f/awesome-lists/devtools/web-frameworks.md) — Extremely fast React-like library for user interfaces.
