{"repo":"orium/rpds","free":true,"listed":false,"github":"https://github.com/orium/rpds","clone":"git clone https://github.com/orium/rpds.git","description":"Rust persistent data structures","language":"Rust","stars":1755,"topics":["data-structures","persistent-data-structure","immutable-data-structures","rust","data-structure"],"license":"MIT","category":"dev-tools","readme_excerpt":"Rust Persistent Data Structures Rust Persistent Data Structures provides fully persistent data structures with structural sharing. Setup To use rpds add the following to your Cargo.toml : Data structures This crate offers the following data structures: 1. List 2. Vector 3. Stack 4. Queue 5. HashTrieMap 6. HashTrieSet 7. RedBlackTreeMap 8. RedBlackTreeSet List Your classic functional list. Example Vector A sequence that can be indexed. The implementation is described in Understanding Persistent Vector Part 1 and Understanding Persistent Vector Part 2. Example Stack A LIFO (last in, first out) data structure. This is just a List in disguise. Example Queue A FIFO (first in, first out) data structure. Example HashTrieMap A map implemented with a hash array mapped trie. See Ideal Hash Trees for details. Example HashTrieSet A set implemented with a HashTrieMap . Example RedBlackTreeMap A map implemented with a red-black tree. Example RedBlackTreeSet A set implemented with a RedBlackTreeMap . Example Other features Mutable methods When you change a data structure you often do not need its previous versions. For those cases rpds offers you mutable methods which are generally faster: Initialization macros There are convenient initialization macros for all data structures: Check the documentation for initialization macros of other data structures. Thread safety All data structures in this crate can be shared between threads, but that is an opt-in ability. This is because there is a per","default_branch":null,"files":null,"tree":[],"storefront":"/r/orium","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/orium/rpds/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}