Kimmer is ready!

Hi guys

I’ve created a framework: GitHub - babyfish-ct/kimmer: Port "https://github.com/immerjs/immer" for kotlin/jvm

It brings immer(GitHub - immerjs/immer: Create the next immutable state by mutating the current one) to kotlin/jvm.

Create the next immutable state tree by simply modifying the current tree

Oh, that looks interesting. And API looks good too.

So I guess it doesn’t copy the tree when mutating or it copies only the mutated data, but most of the tree re-uses the same data structures, correct? Did you try to benchmark CPU and memory usage versus a simple deep copy?

Yes

  1. Like the copy-on-write strategy of linux’s “fork”, unchanged parts are always shared and reused

  2. for an change part, if new value is finally equal to value old, it will be considered as unchanged part too