Yesterday I finished a Ruby wrapper for Olm.
Olm is a protocol agnostic
implementation of Double Ratchet provided as part of the Matrix
project. It’s nicely written, has been audited, and is perhaps the
easiest to port library I’ve ever come across.
Olm is useful if you want to build things that use Double-Ratchet. Coming
from Matrix the main focus is on implementing chat clients, but you could
use this for other things like M2M/IoT.
This is an example exchange between two parties using ruby_olm: