lattice_sequence

Generic sequence CRDT for Gleam using YATA-style left/right origins.

Use this package when replicas need to edit a shared ordered list concurrently and converge without coordination. lattice_sequence handles arbitrary element types with index-based insert, delete, and move operations; for a text-specific API with grapheme handling, use lattice_text instead.

Installation

gleam add lattice_sequence

Quick example

import lattice_core/replica_id
import lattice_sequence/sequence

pub fn main() {
  let node_a =
    sequence.new(replica_id.new("node-a"))
    |> sequence.insert(0, "hello")
    |> sequence.insert(1, "world")

  let node_b =
    sequence.new(replica_id.new("node-b"))
    |> sequence.insert(0, "!")

  let merged = sequence.merge(node_a, node_b)

  sequence.values(merged)
  // -> ["hello", "world", "!"]
}

Modules

ModulePurpose
lattice_sequence/sequenceGeneric list CRDT with stable item IDs, index-based editing, and single-winner move semantics.

Notes

Links

License

MIT

Search Document