hinet2013 / chronograph

Reactive, graph-based, state management system with novel and unique properties

Home Page:https://bryntum.github.io/chronograph/docs/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ChronoGraph

Chronograph is an open-source reactive computational engine, implemented in TypeScript and developed by Bryntum. It powers the business logic of the Bryntum Gantt.

ChronoGraph has the following properties:

  • Cancelable transactions
  • O(1) undo/redo
  • lazy/eager, sync/async computations
  • Data branching
  • Mixed computational unit (user input/calculated value)
  • Unlimited stack depth
  • Disciplined approach to cyclic computations
  • Entity/Relation framework

And the following properties are very feasible:

  • Possibility to split the whole computation into chunks (think requestAnimationFrame)
  • Possibility for breadth-first computation (think network latency)
  • Mapping to SQL
  • Mapping to GraphQL

Reactive computations has become a popular trend recently, popularized by the React, Vue and Angular triade. However, all of the latter are user interface frameworks.

ChronoGraph, in contrast, focuses on reactive computations, describing some generic data graphs (for example Gantt project plans). It is designed to handle extremely large graphs - up to several hundred thousands of "atoms". It also includes the small Entity/Relation framework, which maps to regular ES6 classes.

Documentation

You should be able to quickly pick up the base concept of reactivity from the Basic features guide.

To find out about the remaining (and most interesting) features of ChronoGraph, continue to the Advanced features guide.

Guides contains extensive references to the API docs

The API surface is currently intentionally small and some features are not documented. Please reach out if you need something specific.

Benchmarks

ChronoGraph aims to have excellent performance. To reason about it objectively, we wrote a benchmark suite. More details in the Benchmarks guide.

Connect

We welcome all feedback. Please tell us what works well in ChronoGraph, what causes troubles and what other features you would like to see in it.

Issues tracker

Post at the forum

Discord live chat

COPYRIGHT AND LICENSE

MIT License

Copyright (c) 2018-2020 Bryntum, Nickolay Platonov

About

Reactive, graph-based, state management system with novel and unique properties

https://bryntum.github.io/chronograph/docs/

License:MIT License


Languages

Language:TypeScript 97.4%Language:JavaScript 1.6%Language:Shell 0.6%Language:HTML 0.4%Language:CSS 0.0%