GitPedia

Parallel stream

A parallelized stream implementation for Elixir

From beatrichartz·Updated September 26, 2025·View on GitHub·

Parallelize some stream operations in Elixir whilst keeping your stream in order. Operates with a worker pool. The project is written primarily in Elixir, distributed under the MIT License license, first published in 2015. Key topics include: elixir, parallelism, parallelize, stream.

ParallelStream Build Status Coverage Status Inline docs Hex pm Downloads

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

elixir
{:parallel_stream, "~> 1.1.0"}

to your deps in mix.exs like so:

elixir
defp deps do [ {:parallel_stream, "~> 1.1.0"} ] end

Note: Elixir 1.5.0 is required

How to use

Do this to parallelize a map:

elixir
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):

elixir
1..100 |> ParallelStream.each(&IO.inspect/1)

filter:

elixir
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:

elixir
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!

Contributors

Showing top 8 contributors by commit count.

View all contributors on GitHub →

This article is auto-generated from beatrichartz/parallel_stream via the GitHub API.Last fetched: 6/15/2026