Skip to main content

Data structures

Mops packages for data structures

Mops is an on-chain package manager for Motoko. Here are some Mops packages for data structure implementations:

  • augmented-btrees: An implementation of BTree variants, most notable the B+Tree.

  • buffer-deque: A Buffer with Deque functionality of a Deque for efficient insertion and deletion at both ends.

  • bitbuffer: Bit level and byte level manipulation.

  • circular-buffer: Circular buffer implementation.

  • enumeration: Add-only key sets with numbering and two-way lookup.

  • linked-list: Doubly linked lists, featuring functions for node-level access.

  • map: Stable hash maps.

  • memory-buffer: Persistent buffer implementations.

  • memory-hashlist: Storing and accessing blobs into memory associated with blob-key.

  • memory-hashtable: Storing, updating, deleting, and retrieving a single blob-value per key.

  • merkle-patricia-trie: A Merkle Patricia Trie implementation following the Ethereum specification

  • splay: A library for splay trees.

  • stable-buffer: Buffers implemented in stable regions.

  • stable-enum: Enumerations implemented in stable regions.

  • stableheapbtreemap: BTreeMaps that can persist across upgrades via a stable variable in heap memory.

  • stable-rbtree: Stable RBtree.

  • swb: Sliding window buffers featuring random access functionalities.

  • swbstable: Stable sliding window buffer with random access.

  • vector: Memory-efficient resizable array. Can be used as a replacement for Buffer.