Functional bindings for ZeroMQ built-in on top of cats-effect and JeroMQ.
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>"
Check the official guide for additional information.
- TCP
- InProc
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 |
ƒ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