www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.announce - =?UTF-8?B?4oiFTVFE?= messaging library v1.0 released

reply "Lars T. Kyllingstad" <public kyllingen.net> writes:
I am happy to announce the (somewhat overdue) release of ∅MQD 
v1.0!

∅MQD is a D library that wraps the low-level C API of the ∅MQ 
(aka. ZeroMQ) messaging framework.  It is a rather thin wrapper 
that maps closely to the C API, while providing modern D features 
that make the framework safer, easier and more pleasant to use.  
(In other words, ∅MQD is not just a plain C binding(*)!)

Code:         https://github.com/kyllingstad/zmqd
Dub package:  http://code.dlang.org/packages/zmqd
API docs:     https://kyllingstad.github.io/zmqd/zmqd_v1.0.html

This version works with ∅MQ v4.x, and has 100% support for all 
∅MQ v4.0 functionality.  A few small ∅MQ 4.1 features are 
missing, but support for those will be added in an upcoming 1.1 
release in the not-too-distant future.

Before use, please have a look at the README, specifically the 
section "A word of caution about the C library bindings".  The 
∅MQ guys have introduced some ABI incompatibilities in recent 
versions, so it it important that the D-to-C bindings match the 
library version you have installed.

-Lars


(*) If plain C bindings are what you want, check out 
Deimos/ZeroMQ:

     https://github.com/D-Programming-Deimos/ZeroMQ
     http://code.dlang.org/packages/zeromq

∅MQD depends on these bindings, so I try to keep them up to date 
with stable ∅MQ releases.
Aug 16 2015
next sibling parent reply Nick Sabalausky <SeeWebsiteToContactMe semitwist.com> writes:
Cool. I haven't actually used ZeroMQ yet, but it's something I've had my 
eye on.
Aug 16 2015
parent "Lars T. Kyllingstad" <public kyllingen.net> writes:
On Sunday, 16 August 2015 at 12:53:39 UTC, Nick Sabalausky wrote:
 Cool. I haven't actually used ZeroMQ yet, but it's something 
 I've had my eye on.
If you want to look into it, I heartily recommend the ZeroMQ Guide: http://zguide.zeromq.org/ In addition to being a comprehensive and well-written (entertaining, even) user's guide for ZeroMQ, it contains a lot of good information and advice on how to build distributed software systems in general. I have translated the examples for the first few chapters to D. You'll find them in the "examples" subdirectory of the ∅MQD repo. -Lars
Aug 16 2015
prev sibling next sibling parent reply Walter Bright <newshound2 digitalmars.com> writes:
On 8/16/2015 2:22 AM, Lars T. Kyllingstad wrote:
 I am happy to announce the (somewhat overdue) release of ∅MQD v1.0!
https://www.reddit.com/r/programming/comments/3hgg00/mqd_d_library_for_zeromq_v10_released/ Lars, please post an AMA there.
Aug 18 2015
parent "Lars T. Kyllingstad" <public kyllingen.net> writes:
On Tuesday, 18 August 2015 at 19:35:56 UTC, Walter Bright wrote:
 On 8/16/2015 2:22 AM, Lars T. Kyllingstad wrote:
 I am happy to announce the (somewhat overdue) release of ∅MQD 
 v1.0!
https://www.reddit.com/r/programming/comments/3hgg00/mqd_d_library_for_zeromq_v10_released/ Lars, please post an AMA there.
After the present thread didn't garner much attention the first couple of days, I kind of stopped following it, and didn't catch up on it until now. I guess that reddit thread is long dead now. :( Lars
Aug 20 2015
prev sibling parent reply "Suliman" <evermind live.ru> writes:
Lars, did you thought about full port? I read post of etcimon 
about his Botan lib. He eventual decided to rewrite original lib 
from C++ to D to make code more easier maintainable.
Aug 18 2015
next sibling parent "Laeeth Isharc" <Laeeth.nospam nospam-laeeth.com> writes:
On Tuesday, 18 August 2015 at 20:44:25 UTC, Suliman wrote:
 Lars, did you thought about full port? I read post of etcimon 
 about his Botan lib. He eventual decided to rewrite original 
 lib from C++ to D to make code more easier maintainable.
It's less work to maintain wrappers than full port, I would think, no? I am in awe of etcimon's accomplishments (not just with this), as with several others in the community here. There are some stiff security audit requirements to prudently use crypto code in production (just look back on headlines from past few years to see why), and I hope we can meet these at some stage with botan port. I guess should be easier for D code than C++ if written idiomatically ?
Aug 19 2015
prev sibling parent reply "Lars T. Kyllingstad" <public kyllingen.net> writes:
On Tuesday, 18 August 2015 at 20:44:25 UTC, Suliman wrote:
 Lars, did you thought about full port? I read post of etcimon 
 about his Botan lib. He eventual decided to rewrite original 
 lib from C++ to D to make code more easier maintainable.
I considered it, yes, but it is a *lot* more work, and I think the wrapper solution turned out rather nice. The ZMQ API is pretty "wrappable", and I don't expect it to become much more complex in the future either. The big changes these days seem to be in the ZMQ guys' own high-level wrapper library, CZMQ, rather than in ZMQ core. Recently, I've played around with the idea of making a pure D implementation of Scalable Protocols, which was created by Martin Sustrik, one of the original ZMQ authors. He invented SP and the reference implementation, nanomsg (http://nanomsg.org), partly as kind of a do-over for some things he considered design mistakes in ZMQ. SP seems "cleaner" and more principled than ZMQ in many ways. So many fun projects, so little time... Lars
Aug 20 2015
next sibling parent "Laeeth Isharc" <Laeeth.nospam nospam-laeeth.com> writes:
On Friday, 21 August 2015 at 05:52:42 UTC, Lars T. Kyllingstad 
wrote:
 On Tuesday, 18 August 2015 at 20:44:25 UTC, Suliman wrote:
 Lars, did you thought about full port? I read post of etcimon 
 about his Botan lib. He eventual decided to rewrite original 
 lib from C++ to D to make code more easier maintainable.
I considered it, yes, but it is a *lot* more work, and I think the wrapper solution turned out rather nice. The ZMQ API is pretty "wrappable", and I don't expect it to become much more complex in the future either. The big changes these days seem to be in the ZMQ guys' own high-level wrapper library, CZMQ, rather than in ZMQ core. Recently, I've played around with the idea of making a pure D implementation of Scalable Protocols, which was created by Martin Sustrik, one of the original ZMQ authors. He invented SP and the reference implementation, nanomsg (http://nanomsg.org), partly as kind of a do-over for some things he considered design mistakes in ZMQ. SP seems "cleaner" and more principled than ZMQ in many ways. So many fun projects, so little time... Lars
I was just looking at nanomsg source the other day, wondering just how much work it would be to rewrite in D. In the meantime if you fancy helping with the D wrapper, do let me know.
Aug 21 2015
prev sibling parent =?iso-8859-1?Q?Robert_M._M=FCnch?= <robert.muench saphirion.com> writes:
On 2015-08-21 05:52:40 +0000, Lars T. Kyllingstad said:

 Recently, I've played around with the idea of making a pure D 
 implementation of Scalable Protocols, which was created by Martin 
 Sustrik, one of the original ZMQ authors.  He invented SP and the 
 reference implementation, nanomsg (http://nanomsg.org), partly as kind 
 of a do-over for some things he considered design mistakes in ZMQ.  SP 
 seems "cleaner" and more principled than ZMQ in many ways.
You may want to take a look at BEEP as well. IMO one of the most under-estimated approaches for doing network application protocols. -- Robert M. Münch http://www.saphirion.com smarter | better | faster
Aug 21 2015