[zeromq-dev] what happens to the bindings with libzmq libzapi ...

Brian Granger ellisonbg at gmail.com
Mon Apr 25 22:35:38 CEST 2011


Hi,

> * libzmq will shed _some_ functionality (devices, C++ API, SWAP)
> mainly because we've found this functionality impossible to evolve, as
> part of libzmq.
> * a new libzutil will provide this functionality, specifically for
> bindings (see http://www.zeromq.org/topics:libzutil).
> * libzmq will provide a 3.0 API that aims to be solve some remaining
> issues in the 2.x API (see http://www.zeromq.org/docs:3-0-upgrade).
> * libzapi is the new high-level C API, i.e. a language binding for C
> apps (see http://zero.mq/c).
> * another library (libzapi++) will become the new high-level C++ API.
> * the ZeroMQ distribution will package libzmq, libzutil, libzapi,
> libzapi++ in a single bundle
> * you'll be able to get the individual libraries via git, as always

I know this is the plan, but I don't think it makes any sense to have
two different C APIs and two different C++ APIs like this.  I think it
will be confusing to users and make the development workflow difficult
(which API do I fix that bug in?  which API do I add such and such
feature to).  This also makes the jobs of language bindings more
difficult as well (which should we wrap?).

For a project written in C++, that C++ API, should be *the* C++ API
and the C API should be a thin layer on top of that.  If those APIs
are broken or confusing, let's just fix them in 3.0.

> This is a mix of in-progress and planned. I know that a single libzmq
> doing everything would be simpler, but it's proven impossible to
> scale.

I haven't followed the development closely enough, but I just buy
this.  Groups have developed software that is much more complex that
zeromq with C/C++ APIs and not had any difficulty or needed to develop
additional APIs.  What exactly is not scalable?

> So, issue 188 is in libzmq, not in libzapi. We need to fix it in
> libzmq master, then downstream that fix to 2.1 so that it will be
> available to the language bindings.

This is exactly the confusion that I am predicting will annoy all of
us forever if we allow this to continue....

Cheers,

Brian

> Hope this makes things clearer.
>
> -Pieter
>
>
>
>
> On Fri, Apr 22, 2011 at 12:21 AM, Michael Kogan
> <mkogan at semanticresearch.com> wrote:
>> I am curious what will happen to the bindings, given that the libzmq is
>> changing so significantly.
>> I am especially concerned that there are pretty serious outstanding issues
>> that seemingly would get addressed within the new projects. For example, the
>> issue that is hitting me:
>> https://github.com/zeromq/libzmq/issues/188. I have found this in the java
>> binding and made a minimal test case that Pieter translated into C. However,
>> the indication on the bug is that it may be fixed in libzapi, which is not
>> what the libjzmq (the java binding) uses.
>> Mike.
>> _______________________________________________
>> zeromq-dev mailing list
>> zeromq-dev at lists.zeromq.org
>> http://lists.zeromq.org/mailman/listinfo/zeromq-dev
>>
>>
> _______________________________________________
> zeromq-dev mailing list
> zeromq-dev at lists.zeromq.org
> http://lists.zeromq.org/mailman/listinfo/zeromq-dev
>



-- 
Brian E. Granger
Cal Poly State University, San Luis Obispo
bgranger at calpoly.edu and ellisonbg at gmail.com



More information about the zeromq-dev mailing list