NB: for a good library of general purpose data-structures, I (actually Fare Rideau) recommend cl-containers if you want stateful (imperative) variants, or lisp-interface-library if you want pure (functional) variants. If you implement more data-structures, we recommend you extend their respective interfaces. For more specialized data-structures, read on.
-- If you want a functional collections library, FSet is also worth a look. The two libraries differ in design philosophy; broadly, I would say that FSet has a higher-level feel and is more oriented toward applications programming, while lisp-interface-library has a lower-level feel and is more aimed at systems work. -- Scott L. Burson 2024-01-26
- access - Access is a library to ease getting and setting values in nested dictionary-like objects by providing a unified interface to hash-tables, clos-objects, plists and alists
- array-operations - Provides commonly used operations on arrays
- avl-tree - AVL (Adelson-Velsky-Landis) Tree is a self-balancing binary search tree implementation in Common Lisp
- B-Tries - A prototypical implementation of the data structure described in the paper "B-tries for disk-based string management" (PDF)
- binomial-heap - Binomial-heap is an implementation of the binomial heap data structure
- bk-tree - This page is moved to https://github.com/vy/bk-tree
- bknr-skip-list - An implementation of skip lists for bknr
- BST - BST is a Common Lisp library for working with binary search trees that can contain any kind of values
- cacle - cacle implements an extensible cache data structure
- cl-bloom - Bloom filters in Common Lisp with efficient hashing
- cl-btree - B-Tree implemented in Common Lisp
- cl-cache-tables - cl-cache-tables is a wrapper around native hash-tables to facilitate in-process caching of common lisp data structures
- cl-competitive - A code collection maintained mainly for competitive programming, and partly for just understanding algorithms
- cl-containers - cl-containers adds binary search trees, red-black trees, sparse arrays, and other useful containers
- cl-custom-hash-table - cl-custom-hash-table extends the hash table data structure by allowing the use of arbitrary TEST/HASH functions, in addition to the TEST functions allowed by the standard (EQ, EQL, EQUAL and EQUALP)
- cl-dawg - CL-DAWG is a DoubleArray/DAWG implementation
- cl-heap - CL-HEAP implements the binary heap, Fibonacci heap, and priority queue data structures
- cl-slice - This library was unmaintained for several years
- cl-speedy-queue - cl-speedy-queue is a portable, non-consing, optimized queue implementation
- cl-string-match - Provides substring (subsequence) search and text processing algorithms implementations including regular expression, prefix/suffix tree data structures, etc
- cl-treemaps - cl-treemaps is a lightweight and fast implementation of binary trees
- colliflower - Colliflower is a library for abstaractions around data structures
- D - The D Common Lisp library exists to enable using doubly-linked lists in a program using a style which resembles singly-linked lists as closely as reasonable
- data-table - data-table is a library providing a data structure that has rows of data and column names and types (ie database results)
- dawg - A DoubleArray / DAWG implementation
- dict - DICT is a hash table implementation
- dlist - dlist is a Common Lisp library that implements the doubly-linked list
- fare-utils - fare-utils is a collection of utilities from Fare Rideau
- fern - An efficient, consp, self-adjusting key-value trie-index abstraction for uuid namespaces
- Flexichain - Flexichain is an API for editable sequences
- folio2 - A collection of small libraries: functional idioms and data structures in Common Lisp and a common set of APIs for them
- FSet - FSet is a functional set-theoretic collections data structure library by _(Scott L
- Funds - Funds provides portable, purely functional data structures written in Common Lisp
- genhash - NET HEXAPODIA HASHTABLES is a data structure library for generic hash tables
- heap - Simple implementation of a binary heap for Common Lisp
- Heresy - Heresy is an implementation of the lazy list data structure
- hh-redblack - hh-redblack provides in-memory and disk-based red-black trees
- jarw-dictionary - jarw-dictionary is a generic map/dictionary interface with implementations using internal hash-tables, property lists, files and directories including in-memory caching
- jpl-queues - jpl-queues is a library implementing a few different kinds of queue data structures
- kdtree-jk - KDTREE-JK is a package for building efficent KD-Trees in Common Lisp
- lazy - This is a simple lazy form evaluation package for Common Lisp
- lisp-interface-library - lisp-interface-library is a collection of pure and stateful data structures in interface-passing style from Fare Rideau
- minheap - minheap provides several heap data structures with meldable min-heap and priority queue functionality
- multisets - Library of set operations on multisets
- nary-tree - The n-ary-tree package implements an automatically rebalancing B-tree data structure which supports n >= 5 items in any mixture of types per node
- NKeymaps - Emacs-style keymap management
- patty - Patty is a library that facilitates working with functional data structures on top of CLOS
- pileup - A portable, performant, and thread-safe binary heap / priority queue
- pipes - pipes implements the input stream (lazy list) data structure
- queues - A Common Lisp queue library with features such as non-consing thread safe queues and fibonacci priority queues
- quick-arrays - quick-arrays is a Debian package of the Quick Arrays concept
- Red-Black-trees - Red-Black-trees is an implementation of red-black-trees (a data structure)
- ropes - ropes is an implementation of the rope data structure, an alternative to strings with more efficient concatenation
- SEMI-PRECIOUS - SEMI-PRECIOUS is a library of algorithms/data structures
- Series - A library providing data structure that combines aspects of sequences, (lazy) streams and loops, using a technique known as “fusion” or “deforestation”
- spatial-trees - spatial-trees is a set of dynamic index data structures for spatially-extended data
- Sycamore - Sycamore implements several purely functional data structures in Common Lisp
- symbol-namespaces - symbol-namespaces defines a new kind of package that's named by a symbol rather than a string
- TREES - TREES provides several binary tree data structures exposed through a uniform CLOS interface
- versioned-objects - For any Common Lisp mutable object, allows to store versioning tree of all of the edits connecting its various versions
- vp-trees - vp-trees is an implementation of the vantage point tree data structure in Common Lisp
- X.FDATATYPES - XFDATATYPES implements 3 functional data structures:
- xsubseq - A version of subseq designed to minimize copying