Gletix

Documentation

Gletix

A sync and storage engine for local-first applications.

Gletix is a single-binary engine that keeps application data in sync across clients and stores it durably on disk. It exposes one HTTP interface for reads, writes, and a live change stream — no external database, no background services to coordinate.

Data is organized into namespaces. Each namespace is an independent keyspace with its own change log, so unrelated apps can share one engine without stepping on each other.

#Installation

Gletix ships as one static binary. Place it on your host and start it:

# download and start
$ curl -sSL get.rainy.casa/install | sh
$ gletix serve --data /var/lib/gletix
→ listening on :4600 · api ready · sync ready
By default the engine binds to 127.0.0.1:4600. Put it behind your own reverse proxy to expose it over TLS.

#Quickstart

# create a namespace
$ gletix ns create notes

# write a record
$ curl -X PUT :4600/v1/notes/today \
    -d '{"body":"hello"}'

# read it back
$ curl :4600/v1/notes/today
{"body":"hello","rev":1}

#Configuration

Configure with flags, environment variables, or a small YAML file. Flags take precedence.

# gletix.yaml
data:    /var/lib/gletix
listen:  127.0.0.1:4600
log:     info
retention:
  snapshots: 24

#API reference

Every route lives under /v1/<namespace>. Requests without a valid token return 401.

Method & pathDescription
GET /v1/{ns}/{key}Read a single record.
PUT /v1/{ns}/{key}Create or replace a record.
DELETE /v1/{ns}/{key}Remove a record.
GET /v1/{ns}/_watchServer-sent stream of changes in the namespace.
GET /healthLiveness probe. Returns 200 when the engine is ready.

#CLI

The gletix binary is both the server and the client.

CommandDescription
gletix serveStart the engine.
gletix ns create <name>Create a namespace.
gletix ns lsList namespaces.
gletix statusShow engine health and namespace stats.