Skip to content

Instantly share code, notes, and snippets.

@srph
Forked from jlongster/immutable-libraries.md
Created August 25, 2016 21:33
Show Gist options
  • Select an option

  • Save srph/4a26488b93c39af182c7a4645af9a96c to your computer and use it in GitHub Desktop.

Select an option

Save srph/4a26488b93c39af182c7a4645af9a96c to your computer and use it in GitHub Desktop.

Revisions

  1. @jlongster jlongster revised this gist Oct 14, 2015. 1 changed file with 1 addition and 0 deletions.
    1 change: 1 addition & 0 deletions immutable-libraries.md
    Original file line number Diff line number Diff line change
    @@ -26,5 +26,6 @@ Other libraries built on top of immutable.js: [typed-immutable](https://github.c
    * [freezer](https://github.com/arqex/freezer)
    * [updeep](https://github.com/substantial/updeep)
    * [icepick](https://github.com/aearly/icepick)
    * [sprout](https://github.com/herrstucki/sprout/)
    * [mutatis](https://github.com/steadicat/mutatis)

  2. @jlongster jlongster revised this gist Oct 14, 2015. 1 changed file with 1 addition and 0 deletions.
    1 change: 1 addition & 0 deletions immutable-libraries.md
    Original file line number Diff line number Diff line change
    @@ -24,6 +24,7 @@ Other libraries built on top of immutable.js: [typed-immutable](https://github.c
    * [cortex](https://github.com/mquan/cortex) (cursors)
    * [tcomb](https://github.com/gcanti/tcomb) (typed data)
    * [freezer](https://github.com/arqex/freezer)
    * [updeep](https://github.com/substantial/updeep)
    * [icepick](https://github.com/aearly/icepick)
    * [mutatis](https://github.com/steadicat/mutatis)

  3. @jlongster jlongster revised this gist Oct 6, 2015. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion immutable-libraries.md
    Original file line number Diff line number Diff line change
    @@ -11,7 +11,7 @@ Libraries are sorted by github popularity.

    * [immutable.js](http://facebook.github.io/immutable-js/) - Facebook's implementation with a JS-like API
    * [mori](https://github.com/swannodette/mori) - ClojureScript's persistent data structures exported to JS
    * [ancient-oak](https://github.com/brainshave/ancient-oak) - Not sure about this one. It doesn't seem to fully implement efficient structural sharing (tries, etc) like the above libraries, but it claims to implement parts of it and I see some implementation of a data structure in there
    * [ancient-oak](https://github.com/brainshave/ancient-oak) - Not sure about this one. It doesn't seem to fully implement efficient structural sharing (tries, etc) like the above libraries, but it claims to implement parts of it and I see some implementation of a data structure in there. It also [copies object props](https://github.com/brainshave/ancient-oak/blob/master/lib/balanced_storage/storage.js#L96-L98) onto the data structure so you can access them like `obj.property`, which is neat but might have a perf cost.

    Other libraries built on top of immutable.js: [typed-immutable](https://github.com/Gozala/typed-immutable) and [immstruct](https://github.com/omniscientjs/immstruct)

  4. @jlongster jlongster revised this gist Oct 6, 2015. 1 changed file with 2 additions and 0 deletions.
    2 changes: 2 additions & 0 deletions immutable-libraries.md
    Original file line number Diff line number Diff line change
    @@ -11,6 +11,7 @@ Libraries are sorted by github popularity.

    * [immutable.js](http://facebook.github.io/immutable-js/) - Facebook's implementation with a JS-like API
    * [mori](https://github.com/swannodette/mori) - ClojureScript's persistent data structures exported to JS
    * [ancient-oak](https://github.com/brainshave/ancient-oak) - Not sure about this one. It doesn't seem to fully implement efficient structural sharing (tries, etc) like the above libraries, but it claims to implement parts of it and I see some implementation of a data structure in there

    Other libraries built on top of immutable.js: [typed-immutable](https://github.com/Gozala/typed-immutable) and [immstruct](https://github.com/omniscientjs/immstruct)

    @@ -22,6 +23,7 @@ Other libraries built on top of immutable.js: [typed-immutable](https://github.c
    * [seamless-immutable](https://github.com/rtfeldman/seamless-immutable)
    * [cortex](https://github.com/mquan/cortex) (cursors)
    * [tcomb](https://github.com/gcanti/tcomb) (typed data)
    * [freezer](https://github.com/arqex/freezer)
    * [icepick](https://github.com/aearly/icepick)
    * [mutatis](https://github.com/steadicat/mutatis)

  5. @jlongster jlongster revised this gist Oct 6, 2015. 1 changed file with 1 addition and 0 deletions.
    1 change: 1 addition & 0 deletions immutable-libraries.md
    Original file line number Diff line number Diff line change
    @@ -17,6 +17,7 @@ Other libraries built on top of immutable.js: [typed-immutable](https://github.c
    ## Immutable helpers (simply shallow copy JS objects)

    * [React's immutability helpers](https://facebook.github.io/react/docs/update.html)
    * [baobab](https://github.com/Yomguithereal/baobab)
    * [react-cursor](https://github.com/dustingetz/react-cursor) (cursors)
    * [seamless-immutable](https://github.com/rtfeldman/seamless-immutable)
    * [cortex](https://github.com/mquan/cortex) (cursors)
  6. @jlongster jlongster revised this gist Oct 6, 2015. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion immutable-libraries.md
    Original file line number Diff line number Diff line change
    @@ -12,7 +12,7 @@ Libraries are sorted by github popularity.
    * [immutable.js](http://facebook.github.io/immutable-js/) - Facebook's implementation with a JS-like API
    * [mori](https://github.com/swannodette/mori) - ClojureScript's persistent data structures exported to JS

    There's also [typed-immutable](https://github.com/Gozala/typed-immutable) which is built on top of immutable.js and adds typing.
    Other libraries built on top of immutable.js: [typed-immutable](https://github.com/Gozala/typed-immutable) and [immstruct](https://github.com/omniscientjs/immstruct)

    ## Immutable helpers (simply shallow copy JS objects)

  7. @jlongster jlongster revised this gist Oct 6, 2015. 1 changed file with 4 additions and 1 deletion.
    5 changes: 4 additions & 1 deletion immutable-libraries.md
    Original file line number Diff line number Diff line change
    @@ -12,6 +12,8 @@ Libraries are sorted by github popularity.
    * [immutable.js](http://facebook.github.io/immutable-js/) - Facebook's implementation with a JS-like API
    * [mori](https://github.com/swannodette/mori) - ClojureScript's persistent data structures exported to JS

    There's also [typed-immutable](https://github.com/Gozala/typed-immutable) which is built on top of immutable.js and adds typing.

    ## Immutable helpers (simply shallow copy JS objects)

    * [React's immutability helpers](https://facebook.github.io/react/docs/update.html)
    @@ -20,4 +22,5 @@ Libraries are sorted by github popularity.
    * [cortex](https://github.com/mquan/cortex) (cursors)
    * [tcomb](https://github.com/gcanti/tcomb) (typed data)
    * [icepick](https://github.com/aearly/icepick)
    * [mutatis](https://github.com/steadicat/mutatis)
    * [mutatis](https://github.com/steadicat/mutatis)

  8. @jlongster jlongster revised this gist Oct 6, 2015. 1 changed file with 3 additions and 1 deletion.
    4 changes: 3 additions & 1 deletion immutable-libraries.md
    Original file line number Diff line number Diff line change
    @@ -5,10 +5,12 @@ There are two types of immutable libraries: simple helpers for copying JavaScrip
    implementations. My post generally analyzed the tradeoffs between both kinds of libraries and everything applies to the below
    libraries in either category.

    Libraries are sorted by github popularity.

    ## Persistent Data Structures w/structural sharing

    * [mori](https://github.com/swannodette/mori) - ClojureScript's persistent data structures exported to JS
    * [immutable.js](http://facebook.github.io/immutable-js/) - Facebook's implementation with a JS-like API
    * [mori](https://github.com/swannodette/mori) - ClojureScript's persistent data structures exported to JS

    ## Immutable helpers (simply shallow copy JS objects)

  9. @jlongster jlongster created this gist Oct 6, 2015.
    21 changes: 21 additions & 0 deletions immutable-libraries.md
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,21 @@
    A lot of people mentioned other immutable JS libraries after reading [my post](http://jlongster.com/Using-Immutable-Data-Structures-in-JavaScript).
    I thought it would be good to make a list of available ones.

    There are two types of immutable libraries: simple helpers for copying JavaScript objects, and actual persistent data structure
    implementations. My post generally analyzed the tradeoffs between both kinds of libraries and everything applies to the below
    libraries in either category.

    ## Persistent Data Structures w/structural sharing

    * [mori](https://github.com/swannodette/mori) - ClojureScript's persistent data structures exported to JS
    * [immutable.js](http://facebook.github.io/immutable-js/) - Facebook's implementation with a JS-like API

    ## Immutable helpers (simply shallow copy JS objects)

    * [React's immutability helpers](https://facebook.github.io/react/docs/update.html)
    * [react-cursor](https://github.com/dustingetz/react-cursor) (cursors)
    * [seamless-immutable](https://github.com/rtfeldman/seamless-immutable)
    * [cortex](https://github.com/mquan/cortex) (cursors)
    * [tcomb](https://github.com/gcanti/tcomb) (typed data)
    * [icepick](https://github.com/aearly/icepick)
    * [mutatis](https://github.com/steadicat/mutatis)