Skip to content

Latest commit

 

History

History
52 lines (34 loc) · 1.43 KB

File metadata and controls

52 lines (34 loc) · 1.43 KB

Braid-Neovim

Collaborative editing from Neovim to anything and everything using the Braid-HTTP protocol.

Installation

Add to your Neovim config:

vim.opt.rtp:prepend("~/path/to/braid-neovim")

Or with lazy.nvim:

{ "braid-org/braid-neovim" }

How it works

Syncs Neovim buffers with HTTP resources. Uses the simpleton merge algorithm. Implements HTTP with curl and reads/writes Braid-HTTP in Lua.

Opening a URL

Open any braid-text resource:

:BraidOpen http://localhost:8888/text/notes
:BraidOpen https://dt.braid.org/foo

braid-neovim automatically connects and starts syncing.

Edits you make are pushed to the server immediately, and edits from other clients appear in real time. Close the buffer to disconnect.

Libraries

braid-neovim includes Lua modules that can be used independently:

  • braid/http.lua -- a Braid-HTTP client library. Subscribe to any Braid resource and receive streaming updates (209 Multiresponse parsing, automatic reconnection). Send versioned PUTs with patches.

  • braid/simpleton.lua -- a simpleton sync client. Connects to a braid-text resource and handles the full sync lifecycle: diffing, patching, version tracking, and digest verification.

  • braid/cursors.lua -- collaborative cursor display. Subscribes to cursor updates, renders remote cursors as highlights, and broadcasts local cursor position.