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.
-
12822.3k
-
560551.7k
-
911416.9k
-
37364.7k
-
1.6k359.3k
-
25272.7k
-
294216.9k
-
103215.4k
-
libgraph 0.16.0
A high-performance graph datastructure library for Elixir projects
561208.4k last 90 days561208.4k -
226192.2k
-
131175.0k
-
46163.8k
-
radix 0.5.0
A bitwise radix tree for prefix based matching on bitstring keys of any length.
11150.6k last 90 days11150.6k -
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.
5123.9k last 90 days5123.9k -
54683.8k
-
10183.7k
-
15667.7k
-
limited_queue 0.1.2
Simple Elixir queue, with a constant-time `size/1` and a maximum capacity.
2235.9k last 90 days2235.9k -
3434.3k
-
4531.0k
-
1829.8k
-
crux 0.1.2
Library for boolean satisfiability solving and expression manipulation.
627.9k last 90 days627.9k -
sorted_set_nif 1.3.0
SortedSet is a fast and efficient Rust backed sorted set.
1.6k25.0k last 90 days1.6k25.0k -
qex 0.5.1
A `:queue` wrapper with improvements in API and addition of Protocol implementations
3424.6k last 90 days3424.6k -
2321.8k
-
simplify 2.0.1
Implementation of the Ramer–Douglas–Peucker algorithm for reducing the number of points used to represent a curve.
2920.4k last 90 days2920.4k -
715.6k
-
heap 3.0.0
Small composable Heap implementation. Heaps sort elements at insert time.
15.1k last 90 days-15.1k -
1313.4k
-
412.5k
-
512.4k
-
1110.5k
-
169.0k
-
combination 0.0.3
Elixir library computing simple combination and permutation on Enumerables.
348.3k last 90 days348.3k -
permutation 0.2.0
Permutation is a package and protocol for calculating the possible permutations or combinations of an Enumerable.
46.8k last 90 days46.8k -
1726.7k
-
456.3k
-
-6.1k
-
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.
875.9k last 90 days875.9k -
105.2k
-
75.1k
-
cuckoo_filter 1.0.1
A high-performance, concurrent, and mutable Cuckoo Filter for Erlang and Elixir
485.1k last 90 days485.1k -
95.0k
-
464.9k
-
444.6k
-
04.5k
-
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.
184.4k last 90 days184.4k -
774.4k
-
104.2k
-
44.1k
-
94.0k
-
exterval 0.2.0
Real-valued intervals with support for the `Enumerable` protocol.
113.9k last 90 days113.9k -
103.9k
-
133.8k
-
talan 0.2.0
Probabilistic data structures powered by atomics. Bloom filter, Counting bloom filter, Linear counter (cardinality)
73.7k last 90 days73.7k -
133.6k
-
33.5k
-
523.5k
-
83.4k
-
edit_distance 3.0.0
A pure Gleam package to compute the edit distance of two strings
103.2k last 90 days103.2k -
3573.1k
-
202.9k
-
ringbuffer 1.3.0
RingBuffer - size limited queue, like a ring or cyclic buffer. With non blocking and non locking writers.
52.7k last 90 days52.7k -
-2.7k
-
612.7k
-
152.6k
-
diff_match_patch 0.3.0
An Elixir implementation of the Google diff_match_patch library.
62.5k last 90 days62.5k -
bloomex 1.2.0
Bloomex is a pure Elixir implementation of Scalable Bloom Filters.
1122.4k last 90 days1122.4k -
globalconst 0.3.2
GlobalConst converts large Key-Value entities to a module to make fast accessing by thousands of processes.
02.4k last 90 days02.4k -
-2.4k
-
82.3k
-
62.1k
-
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).
12.1k last 90 days12.1k -
62.0k
-
431.8k
-
binary_gcd 1.1.0
An efficient Elixir implementation of the binary GCD algorithm (Stein's algorithm) for computing the greatest common divisor (GCD) of two or more non-negative integers using only bitwise operations and subtraction.
1.8k last 90 days-1.8k -
traverse 1.0.1
Traverse is a toolset to walk arbitrary Elixir Datastructures in a functional way.
91.5k last 90 days91.5k -
-1.4k
-
421.4k
-
11.4k