dkuhlman

dkuhlman

Elixir examples added to ZeroMQ zguide at Github

For those of you who might be interested in using ZeroMQ in Elixir, I converted the Erlang examples in the ZeroMQ “zguide” to Elixir. I used erl2ex (https://github.com/dazuma/erl2ex.git) to do the initial conversion, then did a bit of editing and testing. Most of these examples work. I was not able to convert a couple because they used a module that I could not find.

You can find these Elixir examples in the ZeroMQ “zguide” repository at https://github.com/booksbyus/zguide. Look in the examples/Elixir directory. See the README.md file for a summary of which examples seem to work and which do not.

Hope this is helpful.

Dave

First Post!

lawik

lawik

Nerves Core Team

Cool. Is there a mature zmq lib for erlang or Elixir right now. I looked at it a few years back to try to transition some services to Elixir but lots of stuff was missing then and I didn’t know nearly ebough to fix it.

Multipart messages were missing at the time I believe.

Most Liked

dkuhlman

dkuhlman

I used erlzmq2 from GitHub - zeromq/erlzmq2: Erlang binding for 0MQ (v2) · GitHub.

I did not try to push it very hard. I suspect it needs care and attention.

I also found that there were missing pieces that were used in the Erlang examples. In particular, I could not find erlzmq_device and erlzmq_util.

If I get time, I’ll try to investigate the multipart message capability.

Last Post!

dkuhlman

dkuhlman

I’m curious, too. I looked just a little more closely. My understanding is really shallow, but, the following code in rrbroker.exs seems to handle multi-part messages:

def loop(frontend, backend) do
receive do
{:zmq, ^frontend, msg, flags} →
case(:proplists.get_bool(:rcvmore, flags)) do
true →
:erlzmq.send(backend, msg, [:sndmore])
false →
:erlzmq.send(backend, msg)
end
{:zmq, ^backend, msg, flags} →
case(:proplists.get_bool(:rcvmore, flags)) do
true →
:erlzmq.send(frontend, msg, [:sndmore])
false →
:erlzmq.send(frontend, msg)
end
end
loop(frontend, backend)
end

That example (rrbroker.exs) seems to work. But, I don’t know how it’s being done underneath in erlzmq (erlzmq2). Looks hopeful, though.

Where Next?

Popular in Guides/Tuts Top

emilsoman
Hello, While answering a StackOverflow question on how to debug an elixir node running remotely, I thought it may be helpful to write a ...
New
dogweather
I just finished a long process of configuring and debugging a Docker Compose-based dev environment. Several late-night hours! I think I’v...
New
sergio
https://sergiotapia.me/generate-images-with-name-initials-using-elixir-and-imagemagick-374eca4d14ff Hope this saves you guys some time!...
New
anuragg
We just published a guide to automatic clustering in Elixir 1.9, with Mix releases and libcluster. The cluster automatically discovers n...
New
mudasobwa
The post covering how to generate nifty types to use in @spec in compile time with macros.
New
georgeguimaraes
Another cool plugin for Neovim, GitHub - jmbuhr/otter.nvim: Just ask an otter! 🦦 · GitHub makes it possible to run linters for embedded c...
New
ob1
Recently we partitioned a table with 28 million rows by its ULID to improve query speeds and reduce query timeouts. To do this I ended up...
New

Other popular topics Top

electic
Hi, I am new to Elixir. I am trying to use the DateTime component to insert a date into MySQL however the there seems to be no way to fo...
New
baxterw3b
Hi guys, i’m new in the Elixir world, and i have to say, that i love it! i’m having some problem to understand anonymous functions with ...
New
JakeBecker
TL;DR: I’ve just released an implementation of Microsoft’s IDE-independent Language Server Protocol for Elixir. It adds language support ...
1144 55125 245
New
aadeshere1
I have a another noob question about loop. Since elixir is immutable, while loop is not directly possible. total = 10 while total != 0 ...
New
dogweather
I wrote this comment on r/haskell, and it’s not popular there. :wink: But I think I’m on to something… Haskell reminds me of Java, and e...
New
siddhant3030
Hi, I have to write a raw query for one of my project. But till now I have used ecto queries and don’t have much experience writing raw ...
New

We're in Beta

About us Mission Statement