Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/bakkdoor/e_q

Erlang Queue for Elixir
https://github.com/bakkdoor/e_q

Last synced: 1 day ago
JSON representation

Erlang Queue for Elixir

Awesome Lists containing this project

README

        

# EQ

Based on [`EQueue` by Ben Falk](https://github.com/benfalk/e_queue) with some
additions and improvements.

## Description

An Elixir wrapper around the Erlang optimized `queue` that supports the FIFO,
first-in first-out, pattern. This is useful is when you can't predict when an
item needs to be taken or added to the queue. Use this instead of using `++` or
double reversing lists to add items to the _"back"_ of a queue.

This is the results of pushing 100k elements onto a list and poping every 13th
element off of it ( over 100x faster! )

``` elixir
# mix run test/performance.exs

IO.puts "#{inspect :timer.tc(EQ.Performance, :test_queue, [[]])}"
#> {21163189, :ok}

IO.puts "#{inspect :timer.tc(EQ.Performance, :test_queue, [EQ.new])}"
#> {189986, :ok}
```

## Installation

1. Add EQ to your list of dependencies in `mix.exs`:

def deps do
[{:e_q, "~> 1.0.0"}]
end