Message passing library

Hello, what would you recommend as a message passing library? Essentially, I would to replace this library http://hackage.haskell.org/package/eprocess by something more mainstream. It is used in Hint-server: http://hackage.haskell.org/package/hint-server Thanks! Corentin

Have you considered ZMQ? It's quite standard, well supported across
languages and platforms, and has great bindings in many languages,
including Haskell, and also has a great online "book". I have used it
successfully with IHaskell. It does have C library requirements, though.
Andrew
On Mon, Jul 20, 2015 at 9:22 AM, Corentin Dupont
Hello, what would you recommend as a message passing library? Essentially, I would to replace this library http://hackage.haskell.org/package/eprocess by something more mainstream. It is used in Hint-server: http://hackage.haskell.org/package/hint-server
Thanks! Corentin
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe

I believe the primary contenders would be Cloud Haskell [1] and Courier [2].
[1]: http://hackage.haskell.org/package/distributed-process and
http://haskell-distributed.github.io/
[2]: http://hackage.haskell.org/package/courier
Cloud Haskell is probably more widely used. I don't know if they're
leveraging Static Pointers yet, but the feature was motivated in part by
their needs.
We mostly use Pipes, TCP sockets, and Binary but I think you're looking for
something more reliable. Probably someone will recommend ZeroMQ. I'd steer
clear of ZeroMQ unless you have an intimate understanding of it and how to
work around its quirks.
On Mon, Jul 20, 2015 at 11:22 AM, Corentin Dupont wrote: Hello,
what would you recommend as a message passing library?
Essentially, I would to replace this library
http://hackage.haskell.org/package/eprocess
by something more mainstream.
It is used in Hint-server: http://hackage.haskell.org/package/hint-server Thanks!
Corentin _______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe --
Chris Allen
Currently working on http://haskellbook.com

As far as ZeroMQ goes, it made it difficult for me to build IHaskell both
times I've tried. It's not insurmountable, but it is a bit of a pain.
If you do end up using it, some clear (maybe even copy-pastable)
instructions on how to install and check the C library itself on different
systems would go a long way.
I don't think it's bad enough to rule it out a priori, but it's something
to keep in mind.
On Jul 20, 2015 9:27 AM, "Christopher Allen"
I believe the primary contenders would be Cloud Haskell [1] and Courier [2].
[1]: http://hackage.haskell.org/package/distributed-process and http://haskell-distributed.github.io/
[2]: http://hackage.haskell.org/package/courier
Cloud Haskell is probably more widely used. I don't know if they're leveraging Static Pointers yet, but the feature was motivated in part by their needs.
We mostly use Pipes, TCP sockets, and Binary but I think you're looking for something more reliable. Probably someone will recommend ZeroMQ. I'd steer clear of ZeroMQ unless you have an intimate understanding of it and how to work around its quirks.
On Mon, Jul 20, 2015 at 11:22 AM, Corentin Dupont < corentin.dupont@gmail.com> wrote:
Hello, what would you recommend as a message passing library? Essentially, I would to replace this library http://hackage.haskell.org/package/eprocess by something more mainstream. It is used in Hint-server: http://hackage.haskell.org/package/hint-server
Thanks! Corentin
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
-- Chris Allen Currently working on http://haskellbook.com
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe

The problems get worse after you've successfully built it.
Someone will probably pipe up to say, "it worked for me!", which is great,
but I think Corentin isn't looking for first-pass functionality here.
Something that has a better story for error handling is probably part of
what's wanted. I don't know if Cloud Haskell or Courier will fit the bill,
but I'm pretty sure ZMQ won't unless Corentin is already an expert in
bashing ZMQ into place.
If that were the case, why would they need to ask the mailing list for
suggestions? They'd have a tool they already know well and could use for
message-passing'ish over the network.
On Mon, Jul 20, 2015 at 11:31 AM, Tikhon Jelvis
As far as ZeroMQ goes, it made it difficult for me to build IHaskell both times I've tried. It's not insurmountable, but it is a bit of a pain.
If you do end up using it, some clear (maybe even copy-pastable) instructions on how to install and check the C library itself on different systems would go a long way.
I don't think it's bad enough to rule it out a priori, but it's something to keep in mind. On Jul 20, 2015 9:27 AM, "Christopher Allen"
wrote: I believe the primary contenders would be Cloud Haskell [1] and Courier [2].
[1]: http://hackage.haskell.org/package/distributed-process and http://haskell-distributed.github.io/
[2]: http://hackage.haskell.org/package/courier
Cloud Haskell is probably more widely used. I don't know if they're leveraging Static Pointers yet, but the feature was motivated in part by their needs.
We mostly use Pipes, TCP sockets, and Binary but I think you're looking for something more reliable. Probably someone will recommend ZeroMQ. I'd steer clear of ZeroMQ unless you have an intimate understanding of it and how to work around its quirks.
On Mon, Jul 20, 2015 at 11:22 AM, Corentin Dupont < corentin.dupont@gmail.com> wrote:
Hello, what would you recommend as a message passing library? Essentially, I would to replace this library http://hackage.haskell.org/package/eprocess by something more mainstream. It is used in Hint-server: http://hackage.haskell.org/package/hint-server
Thanks! Corentin
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
-- Chris Allen Currently working on http://haskellbook.com
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
-- Chris Allen Currently working on http://haskellbook.com

Actually I only need to pass messages between processes with a queue...
No need for network... Sorry it was not clear :)
On Mon, Jul 20, 2015 at 6:27 PM, Christopher Allen
I believe the primary contenders would be Cloud Haskell [1] and Courier [2].
[1]: http://hackage.haskell.org/package/distributed-process and http://haskell-distributed.github.io/
[2]: http://hackage.haskell.org/package/courier
Cloud Haskell is probably more widely used. I don't know if they're leveraging Static Pointers yet, but the feature was motivated in part by their needs.
We mostly use Pipes, TCP sockets, and Binary but I think you're looking for something more reliable. Probably someone will recommend ZeroMQ. I'd steer clear of ZeroMQ unless you have an intimate understanding of it and how to work around its quirks.
On Mon, Jul 20, 2015 at 11:22 AM, Corentin Dupont < corentin.dupont@gmail.com> wrote:
Hello, what would you recommend as a message passing library? Essentially, I would to replace this library http://hackage.haskell.org/package/eprocess by something more mainstream. It is used in Hint-server: http://hackage.haskell.org/package/hint-server
Thanks! Corentin
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
-- Chris Allen Currently working on http://haskellbook.com

You could just use Unix sockets. You ca n create those with the standard
network library if I recall correctly.
On 20 Jul 2015 18:50, "Corentin Dupont"
Actually I only need to pass messages between processes with a queue... No need for network... Sorry it was not clear :)
On Mon, Jul 20, 2015 at 6:27 PM, Christopher Allen
wrote: I believe the primary contenders would be Cloud Haskell [1] and Courier [2].
[1]: http://hackage.haskell.org/package/distributed-process and http://haskell-distributed.github.io/
[2]: http://hackage.haskell.org/package/courier
Cloud Haskell is probably more widely used. I don't know if they're leveraging Static Pointers yet, but the feature was motivated in part by their needs.
We mostly use Pipes, TCP sockets, and Binary but I think you're looking for something more reliable. Probably someone will recommend ZeroMQ. I'd steer clear of ZeroMQ unless you have an intimate understanding of it and how to work around its quirks.
On Mon, Jul 20, 2015 at 11:22 AM, Corentin Dupont < corentin.dupont@gmail.com> wrote:
Hello, what would you recommend as a message passing library? Essentially, I would to replace this library http://hackage.haskell.org/package/eprocess by something more mainstream. It is used in Hint-server: http://hackage.haskell.org/package/hint-server
Thanks! Corentin
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
-- Chris Allen Currently working on http://haskellbook.com
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe

What isn't satisfactory with what you currently have? Are you just looking
for more support so you don't have to DIY? Cloud Haskell and Courier both
have an in-memory backends, so I'm not sure how to whittle things down yet
without other candidate libraries/tech to consider. The only other options
that come to mind right now as being related to message passing go in the
opposite direction of what you want, like Kafka.
On Mon, Jul 20, 2015 at 11:50 AM, Corentin Dupont wrote: Actually I only need to pass messages between processes with a queue...
No need for network... Sorry it was not clear :) On Mon, Jul 20, 2015 at 6:27 PM, Christopher Allen I believe the primary contenders would be Cloud Haskell [1] and Courier
[2]. [1]: http://hackage.haskell.org/package/distributed-process and
http://haskell-distributed.github.io/ [2]: http://hackage.haskell.org/package/courier Cloud Haskell is probably more widely used. I don't know if they're
leveraging Static Pointers yet, but the feature was motivated in part by
their needs. We mostly use Pipes, TCP sockets, and Binary but I think you're looking
for something more reliable. Probably someone will recommend ZeroMQ. I'd
steer clear of ZeroMQ unless you have an intimate understanding of it and
how to work around its quirks. On Mon, Jul 20, 2015 at 11:22 AM, Corentin Dupont <
corentin.dupont@gmail.com> wrote: Hello,
what would you recommend as a message passing library?
Essentially, I would to replace this library
http://hackage.haskell.org/package/eprocess
by something more mainstream.
It is used in Hint-server:
http://hackage.haskell.org/package/hint-server Thanks!
Corentin _______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe --
Chris Allen
Currently working on http://haskellbook.com --
Chris Allen
Currently working on http://haskellbook.com

Another library to keep in mind could be slave-thread:
http://hackage.haskell.org/package/slave-thread – potentially useful if you
have forkIO'd processors of messages.
On Mon, Jul 20, 2015 at 12:09 PM, Christopher Allen
What isn't satisfactory with what you currently have? Are you just looking for more support so you don't have to DIY? Cloud Haskell and Courier both have an in-memory backends, so I'm not sure how to whittle things down yet without other candidate libraries/tech to consider. The only other options that come to mind right now as being related to message passing go in the opposite direction of what you want, like Kafka.
On Mon, Jul 20, 2015 at 11:50 AM, Corentin Dupont < corentin.dupont@gmail.com> wrote:
Actually I only need to pass messages between processes with a queue... No need for network... Sorry it was not clear :)
On Mon, Jul 20, 2015 at 6:27 PM, Christopher Allen
wrote: I believe the primary contenders would be Cloud Haskell [1] and Courier [2].
[1]: http://hackage.haskell.org/package/distributed-process and http://haskell-distributed.github.io/
[2]: http://hackage.haskell.org/package/courier
Cloud Haskell is probably more widely used. I don't know if they're leveraging Static Pointers yet, but the feature was motivated in part by their needs.
We mostly use Pipes, TCP sockets, and Binary but I think you're looking for something more reliable. Probably someone will recommend ZeroMQ. I'd steer clear of ZeroMQ unless you have an intimate understanding of it and how to work around its quirks.
On Mon, Jul 20, 2015 at 11:22 AM, Corentin Dupont < corentin.dupont@gmail.com> wrote:
Hello, what would you recommend as a message passing library? Essentially, I would to replace this library http://hackage.haskell.org/package/eprocess by something more mainstream. It is used in Hint-server: http://hackage.haskell.org/package/hint-server
Thanks! Corentin
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
-- Chris Allen Currently working on http://haskellbook.com
-- Chris Allen Currently working on http://haskellbook.com
-- Chris Allen Currently working on http://haskellbook.com

Are you sure you don't just want Control.Concurrent.Chan or similar?
Tom
El Jul 20, 2015, a las 13:23, Christopher Allen
Another library to keep in mind could be slave-thread: http://hackage.haskell.org/package/slave-thread – potentially useful if you have forkIO'd processors of messages.
On Mon, Jul 20, 2015 at 12:09 PM, Christopher Allen
wrote: What isn't satisfactory with what you currently have? Are you just looking for more support so you don't have to DIY? Cloud Haskell and Courier both have an in-memory backends, so I'm not sure how to whittle things down yet without other candidate libraries/tech to consider. The only other options that come to mind right now as being related to message passing go in the opposite direction of what you want, like Kafka.
On Mon, Jul 20, 2015 at 11:50 AM, Corentin Dupont
wrote: Actually I only need to pass messages between processes with a queue... No need for network... Sorry it was not clear :)
On Mon, Jul 20, 2015 at 6:27 PM, Christopher Allen
wrote: I believe the primary contenders would be Cloud Haskell [1] and Courier [2].
[1]: http://hackage.haskell.org/package/distributed-process and http://haskell-distributed.github.io/
[2]: http://hackage.haskell.org/package/courier
Cloud Haskell is probably more widely used. I don't know if they're leveraging Static Pointers yet, but the feature was motivated in part by their needs.
We mostly use Pipes, TCP sockets, and Binary but I think you're looking for something more reliable. Probably someone will recommend ZeroMQ. I'd steer clear of ZeroMQ unless you have an intimate understanding of it and how to work around its quirks.
On Mon, Jul 20, 2015 at 11:22 AM, Corentin Dupont
wrote: Hello, what would you recommend as a message passing library? Essentially, I would to replace this library http://hackage.haskell.org/package/eprocess by something more mainstream. It is used in Hint-server: http://hackage.haskell.org/package/hint-server
Thanks! Corentin
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
-- Chris Allen Currently working on http://haskellbook.com
-- Chris Allen Currently working on http://haskellbook.com
-- Chris Allen Currently working on http://haskellbook.com _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe

Actually I'm already using Chan in
https://hackage.haskell.org/package/eprocess
But I wondered if something more mainstream existed :)
On Tue, Jul 21, 2015 at 12:28 AM,
Are you sure you don't just want Control.Concurrent.Chan or similar?
Tom
El Jul 20, 2015, a las 13:23, Christopher Allen
escribió: Another library to keep in mind could be slave-thread: http://hackage.haskell.org/package/slave-thread – potentially useful if you have forkIO'd processors of messages.
On Mon, Jul 20, 2015 at 12:09 PM, Christopher Allen
wrote: What isn't satisfactory with what you currently have? Are you just looking for more support so you don't have to DIY? Cloud Haskell and Courier both have an in-memory backends, so I'm not sure how to whittle things down yet without other candidate libraries/tech to consider. The only other options that come to mind right now as being related to message passing go in the opposite direction of what you want, like Kafka.
On Mon, Jul 20, 2015 at 11:50 AM, Corentin Dupont < corentin.dupont@gmail.com> wrote:
Actually I only need to pass messages between processes with a queue... No need for network... Sorry it was not clear :)
On Mon, Jul 20, 2015 at 6:27 PM, Christopher Allen
wrote: I believe the primary contenders would be Cloud Haskell [1] and Courier [2].
[1]: http://hackage.haskell.org/package/distributed-process and http://haskell-distributed.github.io/
[2]: http://hackage.haskell.org/package/courier
Cloud Haskell is probably more widely used. I don't know if they're leveraging Static Pointers yet, but the feature was motivated in part by their needs.
We mostly use Pipes, TCP sockets, and Binary but I think you're looking for something more reliable. Probably someone will recommend ZeroMQ. I'd steer clear of ZeroMQ unless you have an intimate understanding of it and how to work around its quirks.
On Mon, Jul 20, 2015 at 11:22 AM, Corentin Dupont < corentin.dupont@gmail.com> wrote:
Hello, what would you recommend as a message passing library? Essentially, I would to replace this library http://hackage.haskell.org/package/eprocess by something more mainstream. It is used in Hint-server: http://hackage.haskell.org/package/hint-server
Thanks! Corentin
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
-- Chris Allen Currently working on http://haskellbook.com
-- Chris Allen Currently working on http://haskellbook.com
-- Chris Allen Currently working on http://haskellbook.com
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
participants (6)
-
amindfv@gmail.com
-
Andrew Gibiansky
-
Arian van Putten
-
Christopher Allen
-
Corentin Dupont
-
Tikhon Jelvis