zeno_indexing_ex

A little fractional indexing library you can use to generate ordered keys (sequences) in your Elixir backend, compatible with keys generated on the client-side (using TODO zeno-indexing-js).

This library's implementation to fractional indexing borrows generously and gratefully from David Greenspan's notebook.

Installation

If available in Hex, the package can be installed by adding zeno_indexing_ex to your list of dependencies in mix.exs:

def deps do
  [
    {:zeno_indexing_ex, "~> 0.1.0"}
  ]
end

This library's documentation be found at https://hexdocs.pm/zeno_indexing_ex.

FAQ

Q: Why yet another fractional indexing library?

zeno_indexing_ex was initially written in the context of StepTree where client/browser code generated fractional indices. Over time, for conflict resolution as well for testing, it became clear that the backend server, written in Elixir, would have to generate fractional indices as well.

At the time of its writing, I didn't know of any Elixir implementations, and I was afraid it might drift by accident or on purpose from the Javascript implementations out there, so I decided to take matters into my own hands.

Q: What's with the name?

Well I wanted to pick a unique name, and I do think Zeno's dichotomy paradox is analogous to how in theory fractional indexing works, assuming we had infinitely precise floating point numbers, of course!