A tiny local proxy you run so knaxly's browser SQL workbench, Quarry, can reach your own Postgres, MySQL and other databases.
Browsers cannot open raw TCP sockets, so a full live connection to a classic database needs a small bridge running next to your browser. That is the whole trade, stated plainly:
A full live connection to a TCP database requires you to run Ferry locally (one command). That is the cost of not uploading your credentials to us. Your connection string, queries and results stay on your machine.
Ferry prints a pairing token on startup. Copy that token into Quarry to connect.
npx knaxly-ferry
docker run --rm -p 127.0.0.1:8477:8477 knaxly-ferry
A single static binary (via node --sea or pkg) is planned so you will not even need Node or Docker. Source and build notes live in the proxy/ directory of the repo.
These are enforced in code, not just advice:
127.0.0.1. It is a bridge for your own browser, on your own machine. Do not expose it to a network.https://knaxly.dev (plus localhost for development). Any other origin is rejected.http://127.0.0.1:8477 and prints a pairing token.GET /health. When Ferry answers { ok: true, name: "ferry" }, Quarry shows "Connected to local proxy".{ engine, connectionString, sql, params }. Ferry runs it through a native driver and returns { columns, rows, rowCount, durationMs }.Enabled today, via mature native drivers:
Scaffolded for a later release (recognized, not yet enabled):