All Projects → zeromq → Chumak

zeromq / Chumak

Licence: mpl-2.0
Pure Erlang implementation of ZeroMQ Message Transport Protocol.

Programming Languages

erlang
1774 projects

Labels

Projects that are alternatives of or similar to Chumak

Zeromq Ng
⚡️ Next-generation Node.js bindings to the ZeroMQ library
Stars: ✭ 45 (-73.05%)
Mutual labels:  zeromq
Lzmq
Lua binding to ZeroMQ
Stars: ✭ 110 (-34.13%)
Mutual labels:  zeromq
Python Zeroless
ZeroMQ for Pythonistas™
Stars: ✭ 140 (-16.17%)
Mutual labels:  zeromq
01cnode
tool to monitor full bitcoin node bitcoind-web
Stars: ✭ 50 (-70.06%)
Mutual labels:  zeromq
Realtime Rails
Realtime rails support. See website for documentation:
Stars: ✭ 77 (-53.89%)
Mutual labels:  zeromq
Fszmq
An F# binding for the ZeroMQ distributed computing library. For more information, please visit:
Stars: ✭ 112 (-32.93%)
Mutual labels:  zeromq
Libzmq
ZeroMQ core engine in C++, implements ZMTP/3.1
Stars: ✭ 7,418 (+4341.92%)
Mutual labels:  zeromq
Salt
Software to automate the management and configuration of any infrastructure or application at scale. Get access to the Salt software package repository here:
Stars: ✭ 12,086 (+7137.13%)
Mutual labels:  zeromq
Rzmq
R package for ZMQ
Stars: ✭ 83 (-50.3%)
Mutual labels:  zeromq
Smoothstream
Webcam, PiCamera streaming over the network with Python made easy.
Stars: ✭ 133 (-20.36%)
Mutual labels:  zeromq
Libzmq Rs
A strict subset of ØMQ with an ergonomic API.
Stars: ✭ 54 (-67.66%)
Mutual labels:  zeromq
Bokeh
Bokeh is a simple, scalable and blazing-fast task queue built on Node.js and ZeroMQ.
Stars: ✭ 67 (-59.88%)
Mutual labels:  zeromq
Notes
let me know if my notes help you :D (it's a mess, I know)
Stars: ✭ 119 (-28.74%)
Mutual labels:  zeromq
Cppzmq
Header-only C++ binding for libzmq
Stars: ✭ 1,045 (+525.75%)
Mutual labels:  zeromq
Txzmq
ZeroMQ bindings for Twisted
Stars: ✭ 147 (-11.98%)
Mutual labels:  zeromq
Zeroeq
Cross-platform C++ library for fast binary and REST messaging
Stars: ✭ 35 (-79.04%)
Mutual labels:  zeromq
Zproc
Process on steroids
Stars: ✭ 112 (-32.93%)
Mutual labels:  zeromq
Fedmsg
Federated Messaging with ZeroMQ
Stars: ✭ 165 (-1.2%)
Mutual labels:  zeromq
Unity3d Python Communication
⚡️ A very fast, simple, and general inter-process communication example between Unity3D C# and Python, using ZeroMQ
Stars: ✭ 157 (-5.99%)
Mutual labels:  zeromq
Uchain Fullnode
UChain Cross-Platform C++ Full-Node Wallet Implementation
Stars: ✭ 133 (-20.36%)
Mutual labels:  zeromq

chumak

Chumaki

What is chumak?

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

Goal

The goal of chumak application 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. CURVE Security Mechanism
  9. Error Handling
  10. Framing
  11. Socket-Type Property & Identity Property
  12. Backwards Interoperability with ZMTP 3.0

Install

You can install chumak from hex.pm by including the following in your rebar.config:

{deps,[
	{chumak, "X.Y.Z"}
]}.

where X.Y.Z is one of the release versions.

For more info on rebar3 dependencies see the rebar3 docs.

Usage

See examples. Otherwise use just like a regular Erlang/OTP application.

If you would like to use python tests to try language interop, you need to have pyzmq installed.

Build

$ rebar3 compile

By default, this will try to build a version of the application that does not include support for the CURVE security model.

The environment variable CHUMAK_CURVE_LIB can be used to specify a NIF that implements the encryption functions that are required to support the CURVE security model.

The following values for CHUMAK_CURVE_LIB are supported:

  • nacerl - this is the minimal variant using the tweetnacl C library. By default it is fetched and built from https://github.com/willemdj/NaCerl.

         Compilation of nacerl requires gcc and make. Since these tools
         may not be available on windows systems, a check on the
         availability of these tools will be done. If they are not
         available the dependency will not be fetched and there will be
         no support for the CURVE security model.
    
  • nacl - this is similar to nacerl, but it depends on libsodium. The repository for this is https://github.com/tonyg/erlang-nacl. The the build process for Chumak will not automatically fetch and build it, but if CHUMAK_CURVE_LIB is set to "nacl", it will be assumed that this library is available and it will be used.

  • enacl - this also depends on libsodium, but it also requires an Erlang VM that supports dirty schedulers. The repository is https://github.com/jlouis/enacl. The build process for Chumak will not automatically fetch and build it, but if CHUMAK_CURVE_LIB is set to "enacl", it will be assumed that this library is available and it will be used.

Test

$ rebar3 eunit -c

The -c will allow you to see the test coverage by running the command below.

Coverage

$ rebar3 cover

Generate Docs

$ rebar3 edoc

Architecture

Architecture describes the system structure.

Help Wanted

Would you like to help with the project? Pick any of the issues tagged help wanted and contribute!

Contributing

See Contributing.

FAQ

  1. Why another Erlang implementation?

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

  2. Can I use chumak for free?

    Yes, as long as you abide by the terms of the MPLv2 license. In short, you can include this code as a part of a larger work, even commercial. It is only when you modify chumak source code itself that you have to make that change available. Please read the license, as this description is not complete by any means.

  3. Do I have to sign over my copyright when contributing?

    No. Everyone owns the piece of code they contribute. Please see Contributing for details.

License

This project is licensed under Mozilla Public License Version 2.0. See license for complete license terms.

Etymology

From Wikipedia:

Chumak (Ukrainian: чумак) is a historic occupation on the territory of the modern Ukraine as merchants or traders, primarily known for the trade in salt.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].