{"id":13508955,"url":"https://github.com/dfilatov/vidom","last_synced_at":"2025-04-04T20:15:06.259Z","repository":{"id":17096331,"uuid":"19861682","full_name":"dfilatov/vidom","owner":"dfilatov","description":"Library to build UI based on virtual DOM","archived":false,"fork":false,"pushed_at":"2022-02-17T17:58:02.000Z","size":3188,"stargazers_count":414,"open_issues_count":11,"forks_count":16,"subscribers_count":25,"default_branch":"master","last_synced_at":"2025-03-28T19:08:01.838Z","etag":null,"topics":["isomorphism","javascript","jsx","react","reactive","server-side-rendering","ui","vidom","virtual-dom"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dfilatov.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-05-16T15:39:04.000Z","updated_at":"2024-10-25T10:14:57.000Z","dependencies_parsed_at":"2022-09-26T21:20:19.961Z","dependency_job_id":null,"html_url":"https://github.com/dfilatov/vidom","commit_stats":null,"previous_names":[],"tags_count":197,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dfilatov%2Fvidom","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dfilatov%2Fvidom/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dfilatov%2Fvidom/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dfilatov%2Fvidom/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dfilatov","download_url":"https://codeload.github.com/dfilatov/vidom/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247242681,"owners_count":20907134,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["isomorphism","javascript","jsx","react","reactive","server-side-rendering","ui","vidom","virtual-dom"],"created_at":"2024-08-01T02:01:00.959Z","updated_at":"2025-04-04T20:15:06.241Z","avatar_url":"https://github.com/dfilatov.png","language":"JavaScript","funding_links":[],"categories":["JavaScript","Frameworks"],"sub_categories":["Rest of the Pack"],"readme":"# vidom\n[![Build Status](https://img.shields.io/travis/dfilatov/vidom/master.svg?style=flat-square)](https://travis-ci.org/dfilatov/vidom/branches)\n[![NPM Version](https://img.shields.io/npm/v/vidom.svg?style=flat-square)](https://www.npmjs.com/package/vidom)\n[![Dependencies](https://img.shields.io/david/dfilatov/vidom.svg?style=flat-square)](https://david-dm.org/dfilatov/vidom)\n[![NPM Downloads](https://img.shields.io/npm/dm/vidom.svg?style=flat-square)](https://www.npmjs.org/package/vidom)\n\u003c!---[![Sauce Test Status](https://saucelabs.com/browser-matrix/dfilatov81.svg)](https://saucelabs.com/u/dfilatov81)/]--\u003e\n\nVidom is just a library to build UI. It's highly inspired from [React](https://facebook.github.io/react/) and based on the same ideas. Its main goal is to provide as fast as possible lightweight implementation with API similar to React.\n\n## Main features\n  * Fast virtual DOM builder and patcher under the hood\n  * Update batching and synchronization with browsers rendering lifecycle by default\n  * Fast server-side rendering with ability to reuse existing DOM in the browsers also known as isomorphism\n  * Easy and clear way to subscribe to DOM Events\n  * API to build your own high-level components  \n  * Namespaces support (e.g., SVG, MathML)\n  * Ability to render multiple components without unwanted DOM wrappers\n  * No extra markup in the result HTML\n  * JSX support via [babel plugin](https://github.com/dfilatov/babel-plugin-vidom-jsx)\n  * TypeScript support\n  * Small footprint, 9KB after gzip\n  * Zero dependencies\n  \n## Benchmarks\n  * [repaint rate challenge](http://mathieuancelin.github.io/js-repaint-perfs/)\n  * [vdom-benchmark](http://vdom-benchmark.github.io/vdom-benchmark/)\n  * [uibench](https://localvoid.github.io/uibench/)\n  * server-side rendering (nodejs 8.8.1)\n```\n                   mean time ops/sec\n  vidom v0.9.23    0.505ms   1981\n  inferno v3.10.1  0.511ms   1958\n  preact v8.2.6    1.414ms   707\n  react v16.0.0    1.479ms   676\n  vue v2.5.2       8.883ms   113\n```\n\n## Playground\nTry [live playground](http://dfilatov.github.io/vidom/playground/) to play with Vidom in your browser.\n\n## Documentation\n  * [Getting started](../../wiki/Getting-started)\n  * [Tutorial](../../wiki/Tutorial)\n  * [Top-level API](../../wiki/Top-Level-API)\n  * [DOM Events API](../../wiki/DOM-Events-API)\n  * [Component properties](../../wiki/Component-properties)\n  * [Component lifecycle](../../wiki/Component-lifecycle)\n  * [Component methods](../../wiki/Component-methods)\n  * [Function component](../../wiki/Function-Component)\n  * [JSX](../../wiki/JSX)\n  * [Isomorphism](../../wiki/Isomorphism)\n  * [FAQ](../../wiki/FAQ)\n  * [Changelog](../../releases)\n\n## Tools\n  * [Vidom inspector](https://github.com/dfilatov/vidom-inspector) developer tool which helps debug vidom-based applications\n   \n## Addons\n  * [vidom-css-animation-group](https://github.com/dfilatov/vidom-css-animation-group) API for \"appearance\", \"entering\" and \"leaving\" animation via CSS transitions and animation\n  * [vidom-ui](https://dfilatov.github.io/vidom-ui/) Set of basic UI components\n  * [vidom-redux](https://github.com/dfilatov/vidom-redux) Redux bindings \n \n## Examples\n  * [TodoMVC](http://dfilatov.github.io/vidom-todomvc/) ([source](https://github.com/dfilatov/vidom-todomvc))\n  \n## Thanks\n  * [cdnjs](https://github.com/cdnjs/cdnjs) for library is avalaible on CDN.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdfilatov%2Fvidom","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdfilatov%2Fvidom","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdfilatov%2Fvidom/lists"}