memoize-state - The magic memoization for the State management. ✨🧠

  •        6

Reselect? Memoize-one? Most of memoization libraries remembers the parameters you provided, not what you did inside. Sometimes is not easy to achive high cache hit ratio. Sometimes you have to think about how to properly dissolve computation into the memoizable parts. Memoize-state is built to memoize more complex situations, even the ones which are faster to recomoute, than to deside that recalculation is not needed. Just because one cheap computation can cause a redraw/reflow/recomputation cascade for a whole application.

https://github.com/theKashey/memoize-state#readme

Dependencies:

function-double : ^1.0.4
proxyequal : ^2.0.0

Tags
Implementation
License
Platform

   




Related Projects

lru-memoize - A utility to provide LRU memoization for any js function

  •    Javascript

lru-memoize is a utility to provide simple memoization for any pure javascript function, using an LRU cache that prioritizes the most recently accessed values, and discards the "least recently used" (LRU) items when the size limit is reached. If your function has side effects or relies on some external state to generate its result, it should not be memoized. Let's look at an example where we want to memoize a function that multiplies three numbers together, and we want to keep the last ten arguments -> value mappings in memory.

memoize-one - A memoization library which only remembers the latest invocation

  •    Javascript

A memoization library that only caches the result of the most recent arguments. There are only two hard things in Computer Science: cache invalidation and naming things.

moize - The consistently-fast, complete memoization solution for JS

  •    Javascript

moize is a consistently blazing fast memoization library for JavaScript. It handles multiple parameters (including default values) without any additional configuration, and offers a large number of options to satisfy any number of potential use-cases. All parameter types are supported, including circular objects, functions, etc. There are also a number of shortcut methods to memoize for unique use-cases.

memoizee - Complete memoize/cache solution for JavaScript

  •    Javascript

Originally derived from es5-ext package. memoize name was already taken, therefore project is published as memoizee on NPM.


parket - A library to manage application state, heavily inspired by mobx-state-tree

  •    TypeScript

I was disappointed with all the current state management solutions. Then I found mobx-state-tree, which seemed like a godsend to me (ok not really, but I liked the concept), but it was pretty big in terms of file size (mobx alone is big: 16.5kB). So I thought it's surely possible to make a smaller version of it, that's how this started. And after 2 failed attempts I can finally say: Here it is in all of its "glory". Note: This library uses Proxies and Symbols. Proxies cannot be fully polyfilled so you have to target modern browers which support Proxies.

MobX - Simple, scalable state management.

  •    Javascript

MobX is a battle tested, simple and scalable state management library transparently applying functional reactive programming (TFRP). The Mobx design principle is very simple: Anything that can be derived from the application state, should be derived. Automatically. This includes the UI, data serialization, server communication, etc.

fast-memoize.js - :rabbit2: Fastest possible memoization library

  •    Javascript

This library is an attempt to make the fastest possible memoization library in JavaScript that supports N arguments. The fastest cache is used for the running environment, but it is possible to pass a custom cache to be used.

mobx

  •    Dart

MobX for the Dart language. MobX is a state-management library that makes it simple to connect the reactive data of your application with the UI. This wiring is completely automatic and feels very natural. As the application-developer, you focus purely on what reactive-data needs to be consumed in the UI (and elsewhere) without worrying about keeping the two in sync.

ReactStateMuseum - A whirlwind tour of React state management systems by example

  •    Javascript

Every app is meant to be small, simple, and the same as each other. The only difference should be the state management decisions of each. The repeated React and ReactNative app is a Packing List, with the name based on the state technology.

derivablejs - Functional Reactive State for JavaScript and TypeScript

  •    Javascript

Derivables are an Observable-like state container with superpowers. Think MobX distilled to a potent essence, served with two heaped tablespoons of extra performance, a garnish of declarative effects management, and a healthy side-salad of immutability. Atoms are simple mutable references to immutable values. They represent the ground truth from which all else is derived.

mobx-store - A data store with declarative querying, observable state, and easy undo/redo.

  •    Javascript

A data store with declarative querying, observable state, and easy undo/redo. One of the best things about the store is that you can use it with mobx-react because it's based upon MobX. This also means that when you mutate your objects you don't need setState() calls because MobX will handle all the updating for you.

mst-gql - Bindings for mobx-state-tree and GraphQL

  •    Javascript

That being said, it is pretty safe to adopt this project in the sense that just as scaffolding tool it can be pretty beneficial, even if it doesn't cover all cases of your project.

react-values - A set of tiny React components for handling state with render props.

  •    Javascript

A set of tiny, composable React components for handling state with render props. It does this using a small render-prop-based API that exposes helpful transforms like toggle, increment, filter, etc. depending on the type of value, all based on JavaScripts native value types...

statty - A tiny and unobtrusive state management library for React and Preact apps

  •    Javascript

Most of the time, I see colleagues starting React projects setting up Redux + a bunch of middlewares and store enhancers by default, regardless of the project nature.Despite Redux being awesome, it's not always needed and it may slow down the process of onboarding new developers, especially if they are new to the React ecosystem (I have often seen colleagues being stuck for hours trying to understand what was the proper way to submit a simple form).

nuster - A web caching proxy server based on HAProxy

  •    C

Nuster is a simple yet powerful web caching proxy server based on HAProxy. It is 100% compatible with HAProxy, and takes full advantage of the ACL functionality of HAProxy to provide fine-grained caching policy based on the content of request, response or server status. Nuster is very fast, some test shows nuster is almost three times faster than nginx when both using single core, and nearly two times faster than nginx and three times faster than varnish when using all cores.