ExReg

Build StatusHex pmhex.pm downloadsDeps StatusInline docs

A simple process name registry using :pg2. Uses :pg2 (running by default when starting the EVM) to associate a name (any Elixir term) to a process.

Example

Defining a simple ping-pong server:

defmodule Server do
use GenServer
def start_link(opts \\ []) do
GenServer.start_link(__MODULE__, nil, opts)
end
def stop(name, reason \\ :normal) do
GenServer.stop(name, reason)
end
def ping(name) do
GenServer.call(name, :ping)
end
def handle_call(:ping, _from, _) do
{:reply, :pong, nil}
end
end

And using ExReg as name registry:

iex(1)> name = {:name, make_ref()}
iex(2)> Server.start_link({:via, ExReg, name})
iex(3)> Server.ping({:via, ExReg, name})
:pong
iex(4)> Server.stop({:via, ExReg, name})
:ok

Installation

Add ExReg to your list of dependencies in mix.exs:

def deps do
[{:exreg, "~> 0.0.2"}]
end

Author

Alexander de Sousa

License

ExReg is released under the MIT License. See the LICENSE file for further details.