Logo

0x5a.live

for different kinds of informations and explorations.

GitHub - beatrichartz/parallel_stream: A parallelized stream implementation for Elixir

A parallelized stream implementation for Elixir. Contribute to beatrichartz/parallel_stream development by creating an account on GitHub.

Visit SiteGitHub - beatrichartz/parallel_stream: A parallelized stream implementation for Elixir

GitHub - beatrichartz/parallel_stream: A parallelized stream implementation for Elixir

A parallelized stream implementation for Elixir. Contribute to beatrichartz/parallel_stream development by creating an account on GitHub.

Powered by 0x5a.live ๐Ÿ’—

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

{:parallel_stream, "~> 1.1.0"}

to your deps in mix.exs like so:

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:

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!

Elixir Resources

are all listed below.

Resources

listed to get explored on!!

Made with โค๏ธ

to provide different kinds of informations and resources.