unadlib / mutative

Efficient immutable updates, 2-6x faster than naive handcrafted reducer, and more than 10x faster than Immer.
http://mutative.js.org/
MIT License
1.63k stars 18 forks source link

Difference between mutative and immer #16

Open udas0674 opened 1 year ago

udas0674 commented 1 year ago

Hello: My team is considering moving to mutative from immer. We would like to know below:

  1. Main difference in implementation of state production in mutative than immer, which causes mutative to be faster. For example, how does mutative handle deeply nested states, et al?
  2. Test coverage for mutative.
  3. Production ready date or when V1 would be released.

Thank you, again! The results so far.

unadlib commented 1 year ago

hi @udas0674 ,

  1. Mutative and Immer both implement mutable drafts based on Proxy, but Mutative utilizes a stack structure to collect draft instances, thereby gaining a significant advantage in performance. On the other hand, Immer utilizes a process of freezing states to mark them, and traverses these states during the finalization drafts process. And the differences aren't solely in performance, Mutative offers more features than Immer. For more details, you can refer to the README.
  2. The test coverage for Mutative is 100%, and it passed all the Immer test cases.
  3. Mutative v1 might be released next week, and I'm working hard to make that happen.

Thanks for your interest in Mutative!

udas0674 commented 1 year ago

Thank you!

unadlib commented 11 months ago

hi @udas0674 , we've released mutative 1.0. Feel free to use it.