This Elixir library contains an implementation of operational transformations for strings.
It is the same general algorithm as ottypes/text, but made invertible.
This implementation of the library uses a Rust NIF (with rustler_precompiled
support) for increased throughput.
The original implementation of this library, written in pure Elixir, can be found here.
Install the package by adding ot_ex
to your list of dependencies in mix.exs
along with the hex
option:
def deps do
[
{:ot_ex, "~> 0.3.1", hex: :ot_ex_rust}
]
end
Then run mix deps.get
.
To run the basic tests, run mix test
.
There are also some longer fuzz tests available that are quite slow.
These can be included in the suite by running mix test --include slow_fuzz
.
This repo also has Credo and Dialyzer checks that can be run with mix lint
.