parallel_stream alternatives and similar packages
Based on the "Algorithms and Data structures" category.
Alternatively, view parallel_stream alternatives based on common mentions on social networks and blogs.
-
exconstructor
An Elixir library for generating struct constructors that handle external data with ease. -
datastructures
A collection of protocols, implementations and wrappers to work with data structures. -
erlang-algorithms
Implementations of popular data structures and algorithms. -
MapDiff
Calculates the difference between two (nested) maps, and returns a map representing the patch of changes. -
exmatrix
ExMatrix is a small library for working with matrices, originally developed for testing matrix multiplication in parallel. -
parex
Parallel Execute (Parex) is an Elixir module for executing multiple (slow) processes in parallel. -
blocking_queue
BlockingQueue is a simple queue implemented as a GenServer. It has a fixed maximum length established when it is created. -
ecto_materialized_path
Tree structure, hierarchy and ancestry for the ecto models. -
cuid
Collision-resistant ids optimized for horizontal scaling and sequential lookup performance, written in Elixir. -
ratio
Adds Rational Numbers and allows them to be used in common arithmatic operations. Also supports conversion between Floats and Rational Numbers. -
paratize
Elixir library providing some handy parallel processing (execution) facilities that support configuring number of workers and timeout. -
clope
Elixir implementation of CLOPE: A Fast and Effective Clustering Algorithm for Transactional Data.
Get performance insights in less than 4 minutes
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest. Visit our partner's website for more details.
Do you think we are missing an alternative of parallel_stream or a related project?
README
ParallelStream

Parallelized stream implementation for elixir
What does it do?
Parallelize some stream operations in Elixir whilst keeping your stream in order. Operates with a worker pool.
How do I get it?
Add
{:parallel_stream, "~> 1.0.5"}
to your deps in mix.exs
like so:
defp deps do
[
{:parallel_stream, "~> 1.0.5"}
]
end
Note: Elixir 1.1.0
is required
How to use
Do this to parallelize a map
:
stream = 1..10 |> ParallelStream.map(fn i -> i * 2 end)
stream |> Enum.into([])
[2,4,6,8,10,12,14,16,18,20]
The generated stream is sorted the same as the input stream.
More supported functions are each
(to produce side-effects):
1..100 |> ParallelStream.each(&IO.inspect/1)
filter
:
stream = 1..20 |> ParallelStream.filter(fn i -> i |> rem(2) == 0 end)
stream |> Enum.into([])
[2,4,6,8,10,12,14,16,18,20]
and filter
's counterpart, reject
:
stream = 1..20 |> ParallelStream.reject(fn i -> i |> rem(2) == 0 end)
stream |> Enum.into([])
[1,3,5,7,9,11,13,15,17,19]
License
MIT
Contributions & Bugfixes are most welcome!
*Note that all licence references and agreements mentioned in the parallel_stream README section above
are relevant to that project's source code only.