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 <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
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
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" <cma@bitemyapp.com> 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
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 <tikhon@jelv.is> wrote:
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" <cma@bitemyapp.com> 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 <cma@bitemyapp.com> 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
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" <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 <cma@bitemyapp.com> 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 <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 <cma@bitemyapp.com> 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
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 <cma@bitemyapp.com> 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 <cma@bitemyapp.com> 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 <cma@bitemyapp.com> 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 <cma@bitemyapp.com> 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 <cma@bitemyapp.com> 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
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, <amindfv@gmail.com> wrote:
Are you sure you don't just want Control.Concurrent.Chan or similar?
Tom
El Jul 20, 2015, a las 13:23, Christopher Allen <cma@bitemyapp.com> 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 <cma@bitemyapp.com> 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 <cma@bitemyapp.com> 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