All Projects → beatrichartz → parallel_stream

beatrichartz / parallel_stream

Licence: MIT License
A parallelized stream implementation for Elixir

Programming Languages

elixir
2628 projects
shell
77523 projects

Projects that are alternatives of or similar to parallel stream

parallelizer
Simplifies the parallelization of function calls.
Stars: ✭ 62 (-27.91%)
Mutual labels:  parallelism, parallelize
Csv
CSV Decoding and Encoding for Elixir
Stars: ✭ 398 (+362.79%)
Mutual labels:  stream, parallelism
wise-river
Object streaming the way it should be.
Stars: ✭ 33 (-61.63%)
Mutual labels:  stream
evry
Split STDIN stream and execute specified command every N lines/seconds.
Stars: ✭ 61 (-29.07%)
Mutual labels:  stream
cthulhu
Cthulhu is a simple python CLI application that streams torrents directly from various sources.
Stars: ✭ 26 (-69.77%)
Mutual labels:  stream
parquet2
Fastest and safest Rust implementation of parquet. `unsafe` free. Integration-tested against pyarrow
Stars: ✭ 157 (+82.56%)
Mutual labels:  parallelism
moestreamer
macOS menubar music player
Stars: ✭ 17 (-80.23%)
Mutual labels:  stream
fridgefm-radio-core
Simple lightweight package for creating your own radio station via NodeJS heavily inspired by Shoutcast and Icecast.
Stars: ✭ 32 (-62.79%)
Mutual labels:  stream
pv
Unix Pipe Viewer (pv) utility in Node.js
Stars: ✭ 20 (-76.74%)
Mutual labels:  stream
hipipe
Super fast C++17 data transformation pipeline (with Python interface).
Stars: ✭ 16 (-81.4%)
Mutual labels:  stream
php-slang
The place where PHP meets Functional Programming
Stars: ✭ 107 (+24.42%)
Mutual labels:  parallelism
exile
Alternative to ports for running external programs. It provides back-pressure, non-blocking io, and solves port related issues
Stars: ✭ 74 (-13.95%)
Mutual labels:  stream
react-webrtc-chat
React WebRTC chat
Stars: ✭ 39 (-54.65%)
Mutual labels:  stream
lazy-arr
Arrays that look just like regular JavaScript arrays, but are computed lazily.
Stars: ✭ 67 (-22.09%)
Mutual labels:  stream
irc-tts
Broadcast your IRC channel via a text-to-speech webserver
Stars: ✭ 14 (-83.72%)
Mutual labels:  stream
laav
Asynchronous Audio / Video Library for H264 / MJPEG / OPUS / AAC / MP2 encoding, transcoding, recording and streaming from live sources
Stars: ✭ 50 (-41.86%)
Mutual labels:  stream
golang-101
🍺 In-depth internals, my personal notes, example codes and projects. Includes - Thousands of codes, OOP, Concurrency, Parallelism, Goroutines, Mutexes & Wait Groups, Testing in Go, Go tool chain, Backend web development, Some projects including Log file parser using bufio.Scanner, Spam Masker, Retro led clock, Console animations, Dictionary pro…
Stars: ✭ 61 (-29.07%)
Mutual labels:  parallelism
node-jstream
Continuously reads in JSON and outputs Javascript objects.
Stars: ✭ 13 (-84.88%)
Mutual labels:  stream
reactive-rs
Streams and broadcasts: functional reactive programming in Rust.
Stars: ✭ 28 (-67.44%)
Mutual labels:  stream
Async-Channel
Python async multi-task communication library. Used by OctoBot project.
Stars: ✭ 13 (-84.88%)
Mutual labels:  parallelism

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.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 the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].