erlangzmq

What is erlangzmq?

erlangzmq is a library written in Erlang. It implements the ZeroMQ Message Transport Protocol (ZMTP). erlangzmq supports ZMTP version 3.1.

Goal

The goal of erlangzmq library is to provide up-to-date native Erlang implementation of ZMTP.

Features

  1. Resource Property (NEW in 3.1!)
  2. Request-Reply pattern
  3. Publish-Subscribe pattern
  4. Pipeline Pattern
  5. Exclusive Pair Pattern
  6. Version Negotiation
  7. NULL Security Mechanism
  8. Error Handling
  9. Framing
  10. Socket-Type Property & Identity Property
  11. Backwards Interoperability with ZMTP 3.0

Not implemented

  1. CurveZMQ - security is not currently implemented. As a work-around, consider using a proxy running libzmq.

Usage

Use just like any regular Erlang/OTP application.

Make

Shortcut for buliding and testing the project.

Build:

$ make setup

Test:

$ make test

Contributing

See Contributing.

Copyright Choven Corp. 2016. All Rights Reserved.

FAQ

  1. Why another Erlang implementation?

    Because the existing Erlang implementations and bindings are out of date.

  2. Why a dual-license?

    To keep the code up-to-date. Having a commercial license allows us to charge money for code. Erlang is not a very trendy language, so the number of contributors to the open source project like this is small. In order to keep it from dying, we think it makes sense to run it as a commercial project.

  3. Can I use erlangzmq for free?

    Yes, as long as you abide by the terms of the AGPL license. In short, AGPL is a viral license, in that any code it touches has to be similarly licensed. So if you are working on an open-source project which has a compatible license, you can use erlangzmq. For more information see the license terms.

  4. Why do I have to sign over my copyright when contributing?

    Short answer: for us to make money. Long answer: without your copyright, we could not dual-license the code, see "Why a dual-license?" above.

License

erlangzmq is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

erlangzmq is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License along with erlangzmq. If not, see http://www.gnu.org/licenses/

Commercial License

If you or your company doesn't want to use AGPL, contact us by email at contact@choven.ca for your copy of a custom commercial license.

Acknowledgements

Our thanks to Wilson Júnior Wpjunior for the great work he did on the initial version of the codebase.