[zeromq-dev] zproject packaging tool

Pieter Hintjens ph at imatix.com
Mon Dec 28 10:21:41 CET 2015


Hi all,

A FYI on zproject, which is our packaging tool for C libraries that
follow the CLASS spec (ZeroMQ RFC 21). (E.g. CZMQ, Zyre, Malamute).

* https://github.com/zeromq/zproject

To use zproject you write a project.xml file. Here for example is the
Malamute project file:

<project
    name = "Malamute" description = "ZeroMQ Message Broker"
    prefix = "mlm"
    script = "zproject.gsl">
    <include filename = "license.xml" />
    <use project = "czmq" />

    <main name = "malamute" service = "1" />
    <main name = "mshell" />
    <main name = "mlm_tutorial" />
    <main name = "mlm_perftest" />

    <class name = "mlm_proto">Malamute protocol</class>
    <class name = "mlm_server">Malamute server implementation</class>
    <class name = "mlm_client">Malamute client API</class>
    <class name = "mlm_msg" private = "1">Message held by server</class>
    <class name = "mlm_stream_simple" private = "1">Simple stream engine</class>
    <class name = "mlm_mailbox_simple" private = "1">Simple mailbox
engine</class>

    <model name = "mlm_proto" />
    <model name = "mlm_client" />
    <model name = "mlm_server" />

    <extra name = "mlm_server_engine.inc" />
    <extra name = "mlm_client_engine.inc" />
    <extra name = "mlm_client_custom.xml" />
</project>

Targets these platforms:

- autoconf
- Cmake
- Android
- MS Visual Studio 2008
- MS Visual Studio 2010+
- Cygwin
- Mingw32

Generates language bindings:

- Python (+ autoconf)
- Ruby
- Qt
- QML (+ autoconf, android)
- JNI (+ gradle, android, MS Visual Studio 2010+)

And also:

- man pages
- Travis CI integration
- packaging for Debian, Red Hat, NuGet

If you're writing C (and not just using ZeroMQ), do take a look at this tool.

-Pieter



More information about the zeromq-dev mailing list