v0.1.0 — first release
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 pathdjango-libsqluses.
- HTTP — Hrana 1 (stateless
- Engine-agnostic via the small
Filo.Executorbehaviour — 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
Plugand aWebSockhandler 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.