Changelog
View SourceAll notable changes to this project are documented here. The format follows Keep a Changelog, and the project follows semantic versioning.
0.1.0 — 2026-08-27
First release.
Added
Listex.new/2spawns a list process from a plain Elixir list; contents are any term.Listex.open/3reopens one by id after its process has gone.- Operations:
insert/3(with:afterand a caller-minted:id),update/3,move/3,delete/2, andcast/2for the same operations without a round trip. start_editing/4— a presence signal that reaches every other subscriber without changing the list or its version.- Stable item ids: assigned once at insert and untouched by every other operation.
- Arrival order as the conflict policy. Operations naming an item or anchor
that is already gone are refused with
{:error, :not_found}or{:error, :anchor_not_found}rather than guessed at. - Two kinds of subscriber:
:fullreceives aListex.Snapshotafter every change,:updatesreceives oneListex.Eventper change with consecutive versions. Subscribers are monitored and dropped when they die. - Idle shutdown after five minutes, configurable per list with
:idle_timeout. Subscribers are told with{:closed, :idle}, and calls to a list that is gone return{:error, :no_list}instead of exiting the caller. Listex.Listcan be started and supervised on its own, without the registry.