ƒMQ

Build Status codecov fmq-core Scala version support

Functional bindings for ZeroMQ built-in on top of cats-effect and JeroMQ.

Quick Start

To use ƒMQ in an existing SBT project with Scala 2.13 or a later version, add the following dependency to your build.sbt:

libraryDependencies += "io.github.irevive" %% "fmq-core" % "<version>"

Usage Guide

Check the official guide for additional information.

Supported protocols

  • TCP
  • InProc

Sockets matrix

Socket Can publish Can receive
Pub true false
Sub false true
XPub true true
XSub true true
Pull false true
Push true false
Rep true true
Req true true
Router true true
Dealer true true

Benchmarks

ƒMQ provides an acceptable message throughput in comparison to the native implementation.

ƒMQ msgs/s:

Message size (bytes) Throughput
128 1960737
256 1511724
512 862353
1024 498450

ØMQ msgs/s:

Message size (bytes) Throughput
128 3885802
256 2689235
512 1598083
1024 867274

Hardware:
MacBook Pro (15-inch, 2016)
2,6 GHz Quad-Core Intel Core i7
16 GB 2133 MHz LPDDR3