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

License

MIT