Product Promotion
0x5a.live
for different kinds of informations and explorations.
GitHub - simonewebdesign/elixir_pubsub: :droplet: Publish/Subscribe utility module
:droplet: Publish/Subscribe utility module. Contribute to simonewebdesign/elixir_pubsub development by creating an account on GitHub.
Visit SiteGitHub - simonewebdesign/elixir_pubsub: :droplet: Publish/Subscribe utility module
:droplet: Publish/Subscribe utility module. Contribute to simonewebdesign/elixir_pubsub development by creating an account on GitHub.
Powered by 0x5a.live ๐
Elixir Publish/Subscribe
A Publish/Subscribe utility module that frees your business logic processes from the burden of communication.
Getting Started
Add :pubsub
as a dependency to your mix.exs
file:
defp deps do
[
{:pubsub, "~> 1.0"}
]
end
Then run mix deps.get
in your shell to fetch the dependencies.
Examples
Assuming your client process looks like this:
defmodule Client do
def start(client_name) do
spawn(fn -> loop(client_name) end)
end
def loop(name) do
receive do
message ->
IO.puts "#{name} received `#{message}`"
loop(name)
end
end
end
With PubSub
you can do this:
iex(1)> {topic1, topic2} = {:erlang, :elixir}
{:erlang, :elixir}
iex(2)> {:ok, pid} = PubSub.start_link()
{:ok, #PID<0.99.0>}
iex(3)> {pid1, pid2, pid3} =
...(3)> {
...(3)> Client.start("John"),
...(3)> Client.start("Nick"),
...(3)> Client.start("Tim")
...(3)> }
{#PID<0.106.0>, #PID<0.107.0>, #PID<0.108.0>}
iex(4)> PubSub.subscribe(pid1, topic1)
:ok
iex(5)> PubSub.subscribe(pid2, topic1)
:ok
iex(6)> PubSub.subscribe(pid3, topic2)
:ok
iex(7)> PubSub.publish(topic1, "#{topic1} is great!")
"Nick received `erlang is great!`"
"John received `erlang is great!`"
:ok
iex(8)> PubSub.publish(topic2, "#{topic2} is so cool, dude")
"Tim received `elixir is so cool, dude`"
:ok
API Reference
Elixir Resources
are all listed below.
GitHub - hamiltop/structurez: A playground for data structures in Elixir
resource
~/github.com
resource
GitHub - noizu-labs-ml/elixir-weaviate: Weaviate Rest Wrapper for Elixir
resource
~/github.com
resource
GitHub - elpassion/sprint-poker: Online estimation tool for Agile teams.
resource
~/github.com
resource
GitHub - jarednorman/canada: Easy permission definitions in Elixir apps!
resource
~/github.com
resource
GitHub - yesmeck/hexdocset: Convert hex doc to Dash.app's docset format.
resource
~/github.com
resource
GitHub - synrc/mad: โก MAD: Managing Application Dependencies LING/UNIX
resource
~/github.com
resource
GitHub - fuelen/owl: A toolkit for writing command-line user interfaces.
resource
~/github.com
resource
GitHub - dashbitco/flow: Computational parallel flows on top of GenStage
resource
~/github.com
resource
GitHub - jfrolich/smoothie: Beautiful emails for your elixir application
resource
~/github.com
resource
GitHub - mmmries/chunky_svg: An Elixir library for generating SVG images
resource
~/github.com
resource
GitHub - jsonmaur/phoenix-turnstile: Use Cloudflare Turnstile in Phoenix
resource
~/github.com
resource
GitHub - elixirstatus/phoenix_html_sanitizer: HTML Sanitizer for Phoenix
resource
~/github.com
resource
GitHub - meh/cauldron: I wonder what kind of Elixir is boiling in there.
resource
~/github.com
resource
GitHub - narrowtux/Tube: WebSocket client library written in pure Elixir
resource
~/github.com
resource
GitHub - Arp-G/pictionary: Picture guessing and drawing multiplayer game
resource
~/github.com
resource
GitHub - camshaft/world_json_ex: elixir module for the world in geo.json
resource
~/github.com
resource
GitHub - vectordotdev/timber-elixir: ๐ฒ Great Elixir logging made easy
resource
~/github.com
resource
GitHub - ikeikeikeike/exfavicon: Elixir library for discovering favicons
resource
~/github.com
resource
GitHub - kofigumbs/codec-beam: Generate Erlang VM byte code from Haskell
resource
~/github.com
resource
GitHub - edgurgel/verk: A job processing system that just verks! ๐งโ
resource
~/github.com
resource
GitHub - gausby/bencode: A bencode encoder and decoder written in Elixir
resource
~/github.com
resource
GitHub - bradleyd/exgrid: Elixir library to interact with Sendgrid's API
resource
~/github.com
resource
GitHub - avitex/elixir-vultr: Simple wrapper for the Vultr API in Elixir
resource
~/github.com
resource
GitHub - mhinz/vim-mix-format: Vim integration for the Elixir formatter.
resource
~/github.com
resource
GitHub - 81dr/ex_changerate: Elixir client for exchangerate platform API
resource
~/github.com
resource
Made with โค๏ธ
to provide different kinds of informations and resources.