Derived/Computed state with Zero Cost Abstraction
Phil Karlton - "There are only two hard things in Computer Science: cache invalidation and naming things"
CARMI lets you ignore cache invalidation without sacrificing performance
Write a naive version of your state derivation in a lodash inspired syntax and get back an optimized function that makes sure all your computation is incremental and super performant.
CARMI replaces Redux, Mobx, & Lodash

A better Redux
A better Redux
A state container for JavaScript apps without the boilerplate - Just write the selectors (derivations) and setters you need
If a derivation isn't exposed it isn't computed and if something in the state isn't writable it won't be tracked

A better Mobx
A better Mobx
Reactive without setters/getters, and without relying on immutability. Plain objects are 5x-10x faster and all calculations are incremental
And unlike Mobx - you don't need to manually define tiny compute functions nor remember that you already calculated something in a different part of your codebase so it doesn't get computed twice

A better Lodash/Ramda
A better Lodash/Ramda
Uses a simple declarative lodash inspired syntax, but because everything is declarative you can write the shared expressions in the context in which they make sense without paying for it in runtime/performance
Reactive
Reactive
All derived state is always up to date, all computation is incremental
Zero Cost Abstraction
Zero Cost Abstraction
Values are not boxed, plain objects are 5x-10x faster
Easy
Easy
Uses a simple declarative lodash inspired syntax
Simple
Simple
Focus 100% on your business logic, without boilerplate and get unmatched performance