Hacker Newsnew | past | comments | ask | show | jobs | submit | fantasticsoul's commentslogin

The responsive state engine Helux's playground has been released. Welcome to experience it, real time editing of code and viewing of runtime effects helps to quickly learn the basic usage methods of APIs.


Focusing on optimization, surpassing immer, limu finally reaches the top of immutable data performance


helux v3 is released now! powered by extremely fast immutable lib limu.

It is the only one react state library that supports both atom architecture and deep dependency collection currently in the world.

why helux

1 Developed based on the ultra-fast immutable data js library limu, with excellent dependency collection performance

2 No provider is required, access is super simple, and the state is shared mode with 0 cost increase

3 Supports both deep and shallow collection dependency collection strategies

4 Supports features such as share, derive, watch, atom, etc.

5 Derived functions support asynchronous derivation and manual triggering of derived function recalculation.

6 Supports defining new derived results based on derived results to form a directed graph architecture

7 In addition to relying on changes to trigger update components, you can also customize ids to trigger update components.

8 Compatible with react 18

9 Support hot update

10 100% written by ts

here is a online demo: https://codesandbox.io/s/distracted-cloud-2xrvpw


Strongly recommend trying [limu](https://github.com/tnfe/limu),it is now the fastest immutable data js lib,and it is also production environment available.

//You can verify through the following tests, and you are also welcome to add more performance test cases ```bash git checkout https://github.com/tnfe/limu.git cd benchmark npm i ## Then execute the following commands separately npm run s1 npm run s2 npm run s3 npm run s4 ``` The results of one set of performance tests ![image](https://github.com/unadlib/mutative/assets/7334950/2520b8e9-...)

At the same time, the number of single test cases has increased to 500+, with a coverage rate of '95+' (the results can be viewed by executing NPM run tests in the root directory) ![image](https://github.com/unadlib/mutative/assets/7334950/483c7326-...)


[Helux](https://github.com/tnfe/hel/tree/main/packages/helux) is a brand new data flow solution that encourages service injection and supports responsive change React. Its predecessor was [concent](https ://github.com/concentjs/concent) (a high-performance state management framework similar to Vue development experience), but Concent itself needs to be compatible with class and function syntax to maintain consistency, and in order to set up its function, the internal code volume is too large, with over 70 kb compressed and the API exposed, resulting in a sharp increase in learning difficulty, In order to better conform to the coding trend of the current popular DDD to build a domain model around business concepts, helux was initially designed as a lightweight react data flow solution that encourages service injection, supports responsive changes, and supports dependency collection.


It is highly recommended to try hel micro(https://github.com/tnfe/hel) in turbo,cause hel-micro is a runtime module federation SDK which is unrelated to tool chain, so any tool system can access module federation technology in seconds .


You can try hel-micro(https://github.com/tnfe/hel) A runtime module federation SDK which is unrelated to tool chain,It means that any tool system can access module federation technology in seconds , Users do not need to be bound to the webpack system。


limu is short of love immutable, born for efficient creation and operation of immutable object,

It is fast, It is nearly more than 2 or 20 times faster than immer in different situations. Click this online perf demo (https://codesandbox.io/s/limu-simple-perf-case-ycky1t?file=/...) to review the amazing result.

See more perf test result 1. git clone git@github.com:tnfe/limu.git 2. cd benchmark 3. npm i 4. node ./limu-vs-immer.js

You can change the params in limu-vs-immer.js file to test perf of different situations

const hasArr = false; // operate arr or not const lessDeepOp = true; // has more deep operation or not

The perf result at macbook 2021 max pro is:

-----------------------[ hasArr true, lessOp true ]------------------- (reuseBase: true, autoFreeze: true) immer 2.797 ms : limu 1.287 ms (reuseBase: false, autoFreeze: true) immer 2.835 ms : limu 1.313 ms (reuseBase: true, autoFreeze: false) immer 2.049 ms : limu 0.089 ms (reuseBase: false, autoFreeze: false) immer 2.096 ms : limu 0.146 ms

-----------------------[ hasArr true, lessOp false ]------------------ (reuseBase: true, autoFreeze: true) immer 2.946 ms : limu 1.268 ms (reuseBase: false, autoFreeze: true) immer 3.005 ms : limu 1.345 ms (reuseBase: true, autoFreeze: false) immer 2.162 ms : limu 0.147 ms (reuseBase: false, autoFreeze: false) immer 2.169 ms : limu 0.161 ms

-----------------------[ hasArr false, lessOp true ]------------------ (reuseBase: true, autoFreeze: true) immer 2.253 ms : limu 0.659 ms (reuseBase: false, autoFreeze: true) immer 2.261 ms : limu 0.705 ms (reuseBase: true, autoFreeze: false) immer 1.472 ms : limu 0.058 ms (reuseBase: false, autoFreeze: false) immer 1.504 ms : limu 0.064 ms

-----------------------[ hasArr false, lessOp true ]------------------ (reuseBase: true, autoFreeze: true) immer 2.086 ms : limu 0.604 ms (reuseBase: false, autoFreeze: true) immer 2.201 ms : limu 0.643 ms (reuseBase: true, autoFreeze: false) immer 1.383 ms : limu 0.022 ms (reuseBase: false, autoFreeze: false) immer 1.42 ms : limu 0.021 ms



do you love this kind of counter? https://stackblitz.com/edit/funny-counter


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: