An interactive website to help Elm developers find the right data structure for their needs. Elm Project Description
-
Browse existing Elm data structures
- Categorize data structure implementations
- Describe with a simple overview
- List common usages
- Provide good resources for learning more
- Filter options to reduce or recommend possible data structures
- Need sorting?
- Preserve order?
- Unique elements?
- Key-value pairing?
- Prioritized?
- Has unique identifiers?
- Categorize data structure implementations
-
Compare data structures
- Allow selecting data structures to compare, and then create one or more Scenarios
- Scenario
- Ask for general information to initialize and generate the selected data structures
- Size
- Data types (primitives and validated user records and types)
- Data structures added to the website should use scenario data to initialize themselves with fake data
- Ask for general information to initialize and generate the selected data structures
- Scenario
- After creating scenarios, the user can select functions to benchmark
- Show benchmark results and provide helpful graphs
- Remind users that the API matters too, and that it's not just the performance of the data structure
- Allow selecting data structures to compare, and then create one or more Scenarios
-
Data structures to show
- Create a guide to easily create pull requests for new data structures
- Always use the latest data structure version
- Start with data structures available on Elm 0.18
- New data structures should support the latest Elm version number
- Provide an indicator if existing data structures do not support the latest version of Elm yet
- elm-avl-exploration
- elm-dictlist
- elm-all-dict
- elm-default-dict
- orderedmap
- intdict
- elm-avl-dict-exploration
- elm-avl Avl-Dict
- elm-generic-dict GenericDict
- elm-ordered-dict OrderedDict
- elm-bag
- Dict
- lru-cache
- ziplist
- unit-list
- list-selection
- selectable-list
- elm-lazy-list
- lazy-list
- elm-cons
- difference-list
- elm-nested-list
- elm-rolling-list
- elm-infinite-zipper
- elm-nonempty-list
- stream
- selectlist
- listzipper
- elm-pivot
- List
- elm-array-exploration
- elm-non-empty-array
- elm-array-2d
- Array (Most likely will change in 0.19)
MIT