Skip to content

v0.1.0 — first release

Choose a tag to compare

@cwisecarver cwisecarver released this 03 Jul 00:12
455f680

The first release of Filo — a Hrana (libSQL) protocol server for Elixir. Speak libSQL's wire protocol from any Plug app, backed by the SQLite engine of your choice.

Highlights

  • Both transports libSQL clients use, from one Plug:
    • HTTP — Hrana 1 (stateless execute/batch), Hrana 2/3 pipelines, and Hrana 3 cursors, in JSON and Protobuf.
    • WebSocket — Hrana 2/3 (and hrana3-protobuf), the path django-libsql uses.
  • Engine-agnostic via the small Filo.Executor behaviour — Filo owns the protocol; you own the SQL.
  • Stateful streams — one connection per stream (transactions/temp tables persist across requests), pinned by signed batons (HTTP) or a client-allocated id (WebSocket).
  • Ships a Plug and a WebSock handler and nothing else — bring your own server (Bandit/Cowboy).

django-libsql (WebSocket) and the libSQL SDKs / libsql-experimental (HTTP) work end to end.

Status: early, built test-first. CI runs the suite on Elixir 1.20 across OTP 27, 28, and 29.