• Stars
    star
    869
  • Rank 52,497 (Top 2 %)
  • Language
    JavaScript
  • License
    MIT License
  • Created over 9 years ago
  • Updated 3 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

diffHTML is a web framework that helps you build applications and other interactive content

<±/> diffHTML

Build Status Coverage Status

Latest version: 1.0.0-beta.29

diffHTML is an extremely lightweight and optimized HTML parser and Virtual DOM specifically designed for modern web UIs. These interfaces can be applications, games, data visualizations, or anything that you may want to render in a web browser or Node.

The core package works like a library, where you can import just one function and have a fully reactive VDOM rendering engine. When you opt into more functions and use the companion packages you get a framework for structuring your ideas.

Features

  • Parses real HTML and supports JSX & Tagged Templates.
  • Memory efficient VDOM rendering that utilizes object pooling.
  • Powerful middleware extends diffHTML with additional features.
  • React-like Components which can be rendered as Web Components.
  • A lite build which has a smaller size, meant for optimizing production code.

Works great with legacy and modern browsers, Node.js, Deno, and with whatever your favorite JavaScript runtime is.

Packages

The following list of modules are nested in the /packages folder. They form the foundation of the diffHTML ecosystem.

  • diffhtml

    npm install diffhtml

    The core public API for creating user interfaces. Contains a standard build which includes everything, and a smaller optimized build that excludes the HTML parser and performance metrics, which is useful for those who want to minimize the filesize.

  • diffhtml-components

    npm install diffhtml-components

    Provides constructors and middleware for rendering stateful/stateless components seamlessly. The API will be very familiar to anyone who has used React as the class methods and structure are the same.

  • diffhtml-rust-parser

    npm install diffhtml-rust-parser

    Coming soon

    An alternative parser written in Rust and compiled to WASM, providing a wrapper around the tl HTML parsing library which is then converted into a compatible diffHTML VDOM structure.

  • babel-plugin-transform-diffhtml

    npm install babel-plugin-transform-diffhtml

    Transforms your input into function calls. This eliminates the need for runtime parsing. This is similar to how React compiles down JSX.

  • diffhtml-middleware-linter

    npm install diffhtml-middleware-linter

    This module will run various linting rules on your input to ensure you are writing valid/well-formed HTML. This was inspired by and uses rules from the HTMLHint project.

  • diffhtml-middleware-logger

    npm install diffhtml-middleware-logger

    Logs out diffHTML state from the start and end of every render transaction.

  • diffhtml-middleware-synthetic-events

    npm install diffhtml-middleware-synthetic-events

    Changes the event binding from inline event handlers like onclick = fn to use addEventListener. Events are attached to the body element and coordinated to children through delegation.

  • diffhtml-middleware-service-worker

    npm install diffhtml-middleware-service-worker

    Helps with the creation of a service worker for PWAs, available as a convenience to make development more friendlier.

  • diffhtml-website

    The source for the www.diffhtml.org website.

More Repositories

1

backbone-boilerplate

A workflow for building Backbone applications.
JavaScript
4,496
star
2

backbone.layoutmanager

UNMAINTAINED 7/31/18: A layout and template manager for Backbone applications.
JavaScript
1,681
star
3

hyperlist

A performant virtual scrolling list utility capable of rendering millions of rows
JavaScript
407
star
4

github-viewer

GitHub Viewer.
JavaScript
370
star
5

use-amd

An AMD plugin for consuming globally defined JavaScript.
JavaScript
271
star
6

combyne

A template engine that works the way you expect.
JavaScript
144
star
7

backbone.routemanager

Better route management for Backbone.js projects.
JavaScript
111
star
8

salita

Automatically upgrade all NPM dependencies.
JavaScript
95
star
9

babel-plugin-transform-commonjs

A Babel 7 plugin transform to convert CommonJS into ES Modules
JavaScript
82
star
10

lodash-template-loader

A Lo-Dash template loader plugin for AMD projects.
JavaScript
54
star
11

backbone.cacheit

Fetch caching made super simple in Backbone.
JavaScript
47
star
12

vertebrae

Backbone transport management.
JavaScript
43
star
13

previewcode

previewcode.com public repository.
JavaScript
32
star
14

nodewii

Node.js cwiid asynchronous native bindings
C++
31
star
15

growing-up-with-backbone

Growing Up With Backbone.
JavaScript
28
star
16

localhub

A local hub of your Git repositories
JavaScript
15
star
17

redux-create-action-types

Easily create immutable, strict, and well formed action types
JavaScript
15
star
18

diffhtml-prollyfill

DEPRECATED MOVED TO MAIN REPO
14
star
19

scopedcss

Scoping your CSS to a specific selector or element.
JavaScript
14
star
20

nodefreckle

Node.js freckle api bindings
JavaScript
13
star
21

pigeonpost

Amazon SES E-Mail Scheduler & Delivery API
JavaScript
11
star
22

vim-typescript

VIM TypeScript Plugin
JavaScript
10
star
23

site-content

All site content.
JavaScript
10
star
24

hooks-theme-refs

A simple pattern for well structured React Components
JavaScript
10
star
25

todomvc

TodoMVC implemented with VDOM, Tagged templates, and Redux
JavaScript
8
star
26

talks

My Talks
JavaScript
8
star
27

diffhtml-inline-transitions

Inline transition hooks directly into tagged templates
JavaScript
7
star
28

miso.fs

A Miso Dataset FileSystem Importer.
JavaScript
7
star
29

cat-api-boilerplate

A starting point for creating your very own cat API.
JavaScript
7
star
30

react-babel-esm

Using React and Hooks without a bundler, from npm, and with native browser ESM
JavaScript
6
star
31

react-hyperlist

A React wrapper for HyperList
JavaScript
6
star
32

redux-simple-routing

Simple routing for React/Redux apps
JavaScript
5
star
33

babel-plugin-resolve-imports-for-browser

A Babel plugin to convert imports to support browser ESM
JavaScript
5
star
34

bserve

Static HTTP server which automatically transpiles JS using Babel
JavaScript
4
star
35

parallel-run

Run npm scripts multiplexed
JavaScript
4
star
36

babel-preset-browser-esm

Babel preset to make running JavaScript in the browser easier
TypeScript
4
star
37

lm-forms

Backbone LayoutManager and Backbone Forms integration
JavaScript
4
star
38

devoxx-2013

Backbone and Tools
JavaScript
4
star
39

app.toweatherproof.me

Basic Weather App.
JavaScript
4
star
40

chart-component

An experimental Web Component that renders a chart, using diffHTML
JavaScript
4
star
41

babel-ast-cache-perf-tests

Benchmarks various ways of getting a Babel AST
JavaScript
3
star
42

tbranyen.com

My personal site.
JavaScript
3
star
43

grunt-nodequnit

Run QUnit tests in the Node.js environment.
JavaScript
3
star
44

transform-tagged-diffhtml

A Babel plugin transform for diffHTML tagged template strings
JavaScript
3
star
45

diffhtml-synthetic-events

Swaps out inline events for synthetic event delegation.
JavaScript
3
star
46

synchronizer

Build AMD projects into a single UMD file.
JavaScript
3
star
47

consumare

Consume content from Git.
JavaScript
3
star
48

combyne-amd-loader

A Combyne template loader plugin for AMD projects.
JavaScript
3
star
49

combynexpress

Combyne view engine for Express.
JavaScript
3
star
50

extless-loader

Loads Node ESM in a more compatible way by making extensions optional.
JavaScript
3
star
51

d3-playground

D3 playground with webpack hot reloading & babel for prototyping
JavaScript
3
star
52

cropcircle

Pattern framework for building web sites and applications
HTML
2
star
53

quick-dom-node

Make DOM Nodes in Node quickly and they are also quick
JavaScript
2
star
54

make8bitart

an in-browser canvas tool which is great fun!
JavaScript
2
star
55

diffhtml-snowpack

Extremely simple demo using diffHTML and Snowpack
JavaScript
2
star
56

amd.js

Experimental AMD loader
JavaScript
2
star
57

static-sync

A static server that automatically keeps HTML files in sync using Virtual DOM.
JavaScript
2
star
58

awesome-config

My minimalistic Awesome WM configuration.
Lua
2
star
59

diffhtml-logger

DEPRECATED MOVED TO MAIN REPO
2
star
60

LiveEdit-CSS

JavaScript
2
star
61

amd-test-bed

A project test bed
JavaScript
2
star
62

turbopack-webpack-example

Example of turbopack integration with webpack
JavaScript
1
star
63

amd-next

If we were to have a v2 of the AMD specification what would it look like?
1
star
64

Charcoal_UI_v1.1

MIRROR of Charcoal UI 1.1
Lua
1
star
65

calendar.js

A long lost project
JavaScript
1
star
66

load-as-fake-workers

Loads scripts as fake workers for testing
JavaScript
1
star
67

ayo-node-esm-tests

Testing Node vs Ayo ES Modules
JavaScript
1
star
68

broken-npm-resolution

Works with updates to react-blessed-you (fork for react-blessed)
JavaScript
1
star
69

diffhtml-esm-test-app

Zero build test of diffHTML, Redux, and a simple event emitter
JavaScript
1
star
70

css-loader

CSS Loader.
JavaScript
1
star
71

cribbage

Follow me as I get incrementally updated from College-standards to Modern-standards.
JavaScript
1
star