{"id":17371922,"url":"https://github.com/ivan-kleshnin/dataflows","last_synced_at":"2025-04-15T02:37:20.511Z","repository":{"id":28814730,"uuid":"32337931","full_name":"ivan-kleshnin/dataflows","owner":"ivan-kleshnin","description":"Web app dataflows","archived":false,"fork":false,"pushed_at":"2016-03-24T12:38:20.000Z","size":13,"stargazers_count":39,"open_issues_count":0,"forks_count":1,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-03-28T15:11:18.240Z","etag":null,"topics":["angular","backbone","comparison","data-flow","frp","jquery","react","reactive","reactivity"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ivan-kleshnin.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-03-16T16:25:51.000Z","updated_at":"2024-04-10T10:31:21.000Z","dependencies_parsed_at":"2022-09-05T01:21:09.029Z","dependency_job_id":null,"html_url":"https://github.com/ivan-kleshnin/dataflows","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ivan-kleshnin%2Fdataflows","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ivan-kleshnin%2Fdataflows/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ivan-kleshnin%2Fdataflows/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ivan-kleshnin%2Fdataflows/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ivan-kleshnin","download_url":"https://codeload.github.com/ivan-kleshnin/dataflows/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248995106,"owners_count":21195497,"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":["angular","backbone","comparison","data-flow","frp","jquery","react","reactive","reactivity"],"created_at":"2024-10-16T01:06:15.811Z","updated_at":"2025-04-15T02:37:20.255Z","avatar_url":"https://github.com/ivan-kleshnin.png","language":"JavaScript","readme":"# Dataflows\n\n\u003e `active =\u003e passive`\n\n\u003e `emitter \u003c- reactive`\n\nTime flows from left to right.\u003cbr/\u003e\nArrows point from dependent to dependency.\n\nActive \"thing\" requires passive \"thing\" and invokes it's behavior.\u003cbr/\u003e\nReactive \"thing\" requires emitter \"thing\" and subscribes to it's events.\n\n## Generation One\n\nManual DOM mutations\n\n#### jQuery\n\n`DOM \u003c- EventHandler =\u003e DOM`\n\n#### Backbone / Ampersand\n\n`DOM \u003c- View =\u003e Model \u003c- View =\u003e DOM`\n\n## Generation Two\n\nAutomatic DOM mutations\n\n#### Knockout\n\n`[DOM \u003c-] View (handlers) =\u003e ViewModel \u003c- View (bindings) [=\u003e DOM]`\n\nWith Model\n\n`[DOM \u003c-] View (handlers) =\u003e ViewModel \u003c- Model \u003c- ViewModel \u003c- View (bindings) [=\u003e DOM]`\n\n#### Angular\n\nTODO\n\n## Generation Three\n\nVirtual DOM\n\n#### React\n\n`[DOM \u003c-] Component (handler) =\u003e Component (state) \u003c- Component (VDOM) [=\u003e DOM]`\n\n#### Flux / Flummox / ...\n\n`[DOM \u003c-] Component (handler) =\u003e Action =\u003e Dispatcher \u003c- Store \u003c- Store (agg.) \u003c- Component (VDOM) [=\u003e DOM]`\n\nAlso includes **React** scheme.\n\n`agg.` means `aggregate`\n\n#### Reflux\n\n`[DOM \u003c-] Component (handler) =\u003e Action \u003c- Store \u003c- Store (agg.) \u003c- Component (VDOM) [=\u003e DOM]`\n\nAlso includes **React** scheme.\n\n`agg.` means `aggregate`\n\n#### Baobab \n\nIncluding **React** scheme...\n\n`[DOM \u003c-] Component (handler) =\u003e Action =\u003e State \u003c- Facets \u003c- Component (VDOM) [=\u003e DOM]`\n\n#### Cycle\n\nBasic\n\n`[DOM \u003c-] Computer (VDOM) [=\u003e DOM]`\n\nAdvanced\n\n`[DOM \u003c-] Intent \u003c- Model \u003c- View (VDOM) [=\u003e DOM]`\n\n## Links\n\n[reactive-polyglot](https://github.com/ivan-kleshnin/reactive-polyglot) – FRP libraries / langs compared\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fivan-kleshnin%2Fdataflows","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fivan-kleshnin%2Fdataflows","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fivan-kleshnin%2Fdataflows/lists"}