Algorithms and Data structures
Implementations of algorithms and data structures optimized for Elixir's functional programming paradigm. Packages among the 3,000 most downloaded in the past 90 days.
-
12883.3k
-
568684.3k
-
937553.3k
-
1.6k524.7k
-
10522.7k
-
37424.4k
-
27372.3k
-
335323.1k
-
-293.7k
-
libgraph 0.16.0
A high-performance graph datastructure library for Elixir projects
565264.6k last 90 days565264.6k -
132258.5k
-
296239.5k
-
a_tree 0.3.3
A dynamic data structure for efficiently indexing arbitrary boolean expressions
0229.8k last 90 days0229.8k -
227218.2k
-
103201.8k
-
radix 0.5.0
A bitwise radix tree for prefix based matching on bitstring keys of any length.
12184.9k last 90 days12184.9k -
46177.4k
-
crux 0.1.2
Library for boolean satisfiability solving and expression manipulation.
10126.4k last 90 days10126.4k -
107126.1k
-
553122.1k
-
murmur 2.0.0
Murmur is a pure Elixir implementation of the non-cryptographic hash Murmur3. It aims to implement the x86_32bit, x86_128bit and x64_128bit variants.
5121.3k last 90 days5121.3k -
alphabetify 1.1.0
Create an alphabetical hash. Taking an existing alphabetic hash (of any length), will return the next hash in sequence. If all characters in hash are rolled over, will append a new char (increase the length by 1.) eg. 'ZZZZ' -> 'AAAAA' eg. 'AAAZ' -> 'AABA'
3112.1k last 90 days3112.1k -
156107.8k
-
a_k_s_primality_test 1.1.1
A pure Elixir implementation of the AKS (Agrawal-Kayal-Saxena) primality test algorithm.
199.7k last 90 days199.7k -
150.2k
-
limited_queue 0.1.2
Simple Elixir queue, with a constant-time `size/1` and a maximum capacity.
2148.6k last 90 days2148.6k -
accomplice 0.2.0
Accomplice is a library for grouping members of a list with a respect to a number of constraints.
144.0k last 90 days144.0k -
-42.3k
-
aho_corasearch 0.3.0
Elixir lib for Aho-Corasick string searching. Uses a Rust-based NIF for greatly improved performance.
242.3k last 90 days242.3k -
3440.2k
-
simplify 2.0.1
Implementation of the Ramer–Douglas–Peucker algorithm for reducing the number of points used to represent a curve.
3034.0k last 90 days3034.0k -
abacus_sm 1.0.0
Abacus is a module for transforming other modules into metric systems. These modules (metric systems) make it possible to use functions to create values enclosed in a metric system and functions to manipulate these values.
2233.3k last 90 days2233.3k -
abbrev 0.1.0
Calculates the set of unambiguous abbreviations for a given set of strings.
033.2k last 90 days033.2k -
533.2k
-
531.2k
-
qex 0.5.2
A `:queue` wrapper with improvements in API and addition of Protocol implementations
3430.6k last 90 days3430.6k -
4529.8k
-
1828.8k
-
aho_corasick_search 0.3.1
Elixir lib for Aho-Corasick string searching. Uses a Rust-based NIF for greatly improved performance.
028.2k last 90 days028.2k -
2927.8k
-
3627.3k
-
2420.0k
-
1118.2k
-
1317.3k
-
heap 3.0.0
Small composable Heap implementation. Heaps sort elements at insert time.
16.8k last 90 days-16.8k -
nary_tree 0.1.1
NaryTree implements the data structure for n-ary tree (also called rose tree), where each node in the tree can have zero or more children. NaryTree provides methods for traversal and manipulation of the tree structure and node contents.
1815.4k last 90 days1815.4k -
aho_corasick 0.0.1
Aho-Corasick algorithm, implemented in Elixir using Erlang's :digraph for the graph structure
1314.1k last 90 days1314.1k -
114.1k
-
114.0k
-
alltid 0.1.0
Alltid offers a simplified approach to editing deeply nested immutable data structures in Elixir.
114.0k last 90 days114.0k -
Annealing is a library for building and running simulated annealing algorithms in Elixir.
113.9k last 90 days113.9k -
913.6k
-
edit_distance 3.0.1
A pure Gleam package to compute the edit distance of two strings
1012.7k last 90 days1012.7k -
-11.5k
-
510.7k
-
79.9k
-
179.6k
-
779.4k
-
combination 0.0.3
Elixir library computing simple combination and permutation on Enumerables.
348.8k last 90 days348.8k -
permutation 0.3.0
Permutation is a package and protocol for calculating the possible permutations or combinations of an Enumerable.
48.3k last 90 days48.3k -
arrays 2.1.1
Well-structured Arrays with fast random-element-access for Elixir, offering a common interface with multiple implementations (MapArray, Erlang :array, etc.) with varying performance guarantees that can be switched in your configuration.
908.1k last 90 days908.1k -
A high-performance graph datastructure library for Elixir projects with multigraph support
18.0k last 90 days18.0k -
amplified_nested 0.1.0
Utilities for hierarchical data structures with parent/child relationships
17.4k last 90 days17.4k -
97.4k
-
147.2k
-
136.2k
-
635.4k
-
34.7k
-
114.6k
-
amplified_inverted_index 0.1.0
Convert between plain text and inverted index format
04.6k last 90 days04.6k -
exterval 0.2.0
Real-valued intervals with support for the `Enumerable` protocol.
114.5k last 90 days114.5k -
104.4k
-
ringbuffer 1.3.0
RingBuffer - size limited queue, like a ring or cyclic buffer. With non blocking and non locking writers.
54.3k last 90 days54.3k -
154.2k
-
cuckoo_filter 1.0.1
A high-performance, concurrent, and mutable Cuckoo Filter for Erlang and Elixir
484.2k last 90 days484.2k -
524.1k
-
3584.1k
-
464.0k
-
-3.8k
-
1413.8k
-
unrooted_polytree 0.1.1
GenStagA data type and related functions to support an unrooted (multiple starting nodes) polytree (a tree-like graph with edges).
13.8k last 90 days13.8k -
1723.7k
-
463.7k
-
traverse 1.0.1
Traverse is a toolset to walk arbitrary Elixir Datastructures in a functional way.
93.2k last 90 days93.2k -
talan 0.2.1
Probabilistic data structures powered by atomics. Bloom filter, Counting bloom filter, Linear counter (cardinality)
83.2k last 90 days83.2k -
83.1k
-
ex_rose_tree 0.1.3
A Rose Tree and Zipper in Elixir with a slew of navigation primitives.
253.0k last 90 days253.0k -
463.0k
-
sorted_set_nif 2.0.1
SortedSet is a fast and efficient Rust backed sorted set.
1.6k2.9k last 90 days1.6k2.9k -
diff_match_patch 0.3.0
An Elixir implementation of the Google diff_match_patch library.
52.9k last 90 days52.9k -
442.9k
-
-2.9k