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