Hi Michel, This is great fun! I'm going to look at what you did since I'd like to try generating Python wrappers for our standardish C APIs (FileMQ, Zyre, for instance).
-Pieter On Wed, Oct 9, 2013 at 4:28 AM, Michel Pelletier <[email protected]> wrote: > Wanting to know more about Python and CFFI, I decided to do a > straightforward wrap job for Python around the CZMQ C API. I have it > reasonable complete enough to write some simple code and tests. I've pushed > it up to github: > > https://github.com/michelp/pyczmq > > Most of the core functionality, zctx, zsocket, zsockopt, zpoller, zmsg, > zframe, zstr, zloop, zbeacon, zcert, zauth, are exposed as both straight > wrappers around the C interface as well as some namespaced functions that > provide a high level functional interface (eg, turning cdata char * into > python byte strings, etc). For example: > > > ctx = zctx.new() > push = zsocket.new(ctx, zsocket.PUSH) > pull = zsocket.new(ctx, zsocket.PULL) > zsocket.bind(push, 'inproc://test') > zsocket.connect(pull, 'inproc://test') > zstr.send(push, 'foo') > assert zstr.recv(pull) == 'foo' > zstr.send(push, 'bar') > zsocket.poll(pull, 1) > assert zstr.recv_nowait(pull) == 'bar' > > > > There's also a first stab at providing an OO interface in the form of > Context, Socket, Beacon and Loop classes. Here's a working example: > > ctx = Context() > pub = ctx.socket('PUB') > sub = ctx.socket('SUB') > sub.set_subscribe('') > pub.bind('inproc://zoop') > sub.connect('inproc://zoop') > pub.send('foo') > sub.poll(1) > assert sub.recv() == 'foo' > > > This is a work in progress, it's useful enough now to create socket and > messages and send and receive data. I'd certainly love any form of help, > just send me a pull request. Featured desired are way more tests! And of > course any missing functions that need wrapping, or new functionality. > > Thanks and enjoy, > > -Michel > > _______________________________________________ > zeromq-dev mailing list > [email protected] > http://lists.zeromq.org/mailman/listinfo/zeromq-dev > _______________________________________________ zeromq-dev mailing list [email protected] http://lists.zeromq.org/mailman/listinfo/zeromq-dev
