[zeromq-dev] ZeroMQ for Contiki OS

Pieter Hintjens ph at imatix.com
Wed Jan 20 12:39:52 CET 2016

Hi Axel,

This is really cool... could be the basis for other embedded projects.
I'd like to move this into the zeromq organization and use our C4.1
contribution policy, is that OK?

The name suggests you ported libzmq, which is misleading. It'd be
better to say "ZMTP" instead of "ZeroMQ".

I've invited you to the ZeroMQ core team so you can move this project
(if you approve of this idea).


On Wed, Jan 20, 2016 at 11:47 AM, Axel Voitier <axel.voitier at gmail.com> wrote:
> Yes, I actually started from libzmtp. Few things remain from it now
> (channels and msgs) as I had to adapt it to whatever Contiki provides.
> Contiki does not have a posix socket interface. But the hardest was t adapt
> to its threading model (protothreads) which were really constraining...
> Also, I adapted the memory allocations to do use as much as possible
> preallocation (called memb in Contiki). A few malloc remains here and there,
> but much less than initially.
> However, if I was to restart this project, I would not pick Contiki anymore.
> But rather give it a try with RIOT, which seems to have something that match
> a POSIX interface. And a much saner threading model that behaves a bit like
> an event loop with a hub (and reusing features from the underlying MCU to do
> context switching, like the SVC instruction with ARM).
> Cheers,
> Axel
> --
> Contact: axel.voitier at gmail.com
> Secure: axel.voitier at protonmail.ch
> 2016-01-20 9:31 GMT+01:00 Benjamin Henrion <zoobab at gmail.com>:
>> On Wed, Jan 20, 2016 at 4:01 AM, Axel Voitier <axel.voitier at gmail.com>
>> wrote:
>> > Hello,
>> >
>> > I have published an attempt at porting zeromq to Contiki OS:
>> > https://github.com/Alidron/contiki-zeromq
>> >
>> > It has a few limitations still. However, I covered most basics of ZMTP
>> > and a
>> > handful of sockets. It is not entirely compliant with the RFCs for the
>> > moment though (some parts prove to be harder to do than I expected).
>> >
>> > I have been able to run it on a constrained setup: ARM Cortext M3
>> > running at
>> > 32MHz, with 512KB of flash (the demo programs weight about 130KB) and
>> > 80KB
>> > of RAM. And with a sub-1GHz RF link.
>> >
>> > The implementation makes use of Contiki network stack, which can use
>> > TCP,
>> > IPv4, IPv6 and 6LoWPAN. I actually tested it over 6LoWPAN on the sub-GHz
>> > link :).
>> >
>> > It is not has featured and fast as running zeromq between two usual
>> > computers. But I hope this implementation prove it is feasible to have
>> > ZeroMQ on such constrained hardware :).
>> Have you tried to compile libzmtp?
>> One of my short-term goal is to make libzmptp running on esp8266 and
>> some cortex m3 board.
>> --
>> Benjamin Henrion <bhenrion at ffii.org>
>> FFII Brussels - +32-484-566109 - +32-2-3500762
>> "In July 2005, after several failed attempts to legalise software
>> patents in Europe, the patent establishment changed its strategy.
>> Instead of explicitly seeking to sanction the patentability of
>> software, they are now seeking to create a central European patent
>> court, which would establish and enforce patentability rules in their
>> favor, without any possibility of correction by competing courts or
>> democratically elected legislators."
>> _______________________________________________
>> 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

More information about the zeromq-dev mailing list