{"id":37151154,"url":"https://github.com/kqlite/kqlite","last_synced_at":"2026-01-14T17:51:53.377Z","repository":{"id":261232772,"uuid":"784321225","full_name":"kqlite/kqlite","owner":"kqlite","description":"Lightweight remote high available SQLite.","archived":false,"fork":false,"pushed_at":"2025-08-11T07:14:43.000Z","size":1021,"stargazers_count":6,"open_issues_count":1,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-08-11T09:23:14.470Z","etag":null,"topics":["clustering","edge","go","high-availability","k8s","postgresql","replication","sqlite"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kqlite.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-04-09T16:09:50.000Z","updated_at":"2025-07-22T14:07:19.000Z","dependencies_parsed_at":"2025-05-14T12:29:02.680Z","dependency_job_id":"b33fdc26-500b-4cbe-b0eb-98e2a01d9519","html_url":"https://github.com/kqlite/kqlite","commit_stats":null,"previous_names":["kqlite/kqlite"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/kqlite/kqlite","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kqlite%2Fkqlite","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kqlite%2Fkqlite/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kqlite%2Fkqlite/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kqlite%2Fkqlite/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kqlite","download_url":"https://codeload.github.com/kqlite/kqlite/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kqlite%2Fkqlite/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28428961,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T16:38:47.836Z","status":"ssl_error","status_checked_at":"2026-01-14T16:34:59.695Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["clustering","edge","go","high-availability","k8s","postgresql","replication","sqlite"],"created_at":"2026-01-14T17:51:52.559Z","updated_at":"2026-01-14T17:51:53.373Z","avatar_url":"https://github.com/kqlite.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cpicture\u003e\n \u003csource media=\"(prefers-color-scheme: light)\" srcset=\"kqlite-logo-with-text.png\"\u003e\n  \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"kqlite-logo-with-text.png\"\u003e\n \u003cimg alt=\"kqlite logo\" src=\"kqlite-logo-with-text.png\" width='500px'\u003e\n\u003c/picture\u003e\n\u003cbr/\u003e\u003cbr/\u003e\n\n[![Experimental](https://img.shields.io/badge/status-experimental-orange.svg)](https://shields.io/)\n[![CI](https://github.com/kqlite/kqlite/actions/workflows/ci.yml/badge.svg)](https://github.com/kqlite/kqlite/actions/workflows/go.yml) \n[![Go Report Card](https://goreportcard.com/badge/github.com/kqlite/kqlite)](https://goreportcard.com/report/github.com/kqlite/kqlite)\n\n- Replicated SQLite database and remote access over the PostgreSQL wire protocol.\n- Auto failover to an active secondary instance and registering back as secondary a former primary.\n- Quick and easy setup and high availability configuration with only two DB Nodes.\n\nWorks by translating PostgreSQL frontend wire messages into SQLite transactions and converting results back into PostgreSQL response wire messages. \nMany PostgreSQL clients also inspect the pg_catalog to determine system information so **kqlite** mirrors this catalog by using an attached in-memory database with virtual tables. \nA rewrite on those system queries is performed to convert them to usable SQLite syntax.\n\n\nThis repo is very much under active development; as such there are no published artifacts at this time.\nInterested developers can clone and run locally to try out things as they become available.\n\n### How to Build and Run\n\nThis repo uses [Go 1.23 or higher](https://go.dev/dl/).\n\n```sh\ngit clone https://github.com/kqlite/kqlite.git\n```\n\nBuild is done via `make`\n\n```sh\nGeneral\n  help             Display this help.\n\nDevelopment\n  docker-build     Build docker image.\n  docker-push      Push kqlite image.\n  kqlite           Build kqlite binary.\n  example          Build example client program.\n  fmt              Format source code.\n  vet              Run go vet against code.\n  vendor           Runs go mod vendor\n  tidy             Runs go mod tidy\n  test             Run unit tests.\n  test-simple      Run unit tests without verbose/debug output.\n  test-package     Run unit tests for specific package.\n  test-coverage    Display test coverage as html output in the browser.\n```\nrunning `make` without any arguments will trigger build and the resulting binary will endup in the project's bin/ folder.\n\n### Running `kqlite`\n\nAfter building the binary, you can execute `bin/kqlite --help` to list available options.\u003cbr\u003e\nUsally `bin/kqlite -data-dir \u003cdir\u003e` is the common way to run it.\n\n### What Works So Far?\n\nThis is still a work in progress and is not yet at full feature database engine. Bugs may exist. Please check this list carefully before logging a new issue or assuming an intentional change.\n\nStatus overview:\n * Access to remote SQLite databases over the Postgres wire protocol from multiple remote connections.\n * Remote access via \u003cb\u003epsql\u003c/b\u003e, but some basic commands like `\\dt` aren't yet supported.\n   ```sh\n   psql --host HOSTNAME -d DBNAME\n   ```\n   `DBNAME must be without the '.db' suffix.`\n * Transaction support in terms of `sqlite`.\n * Currently **pgx** through `database/sql` is tested and proven to work (https://github.com/jackc/pgx/wiki/Getting-started-with-pgx-through-database-sql).\n * A lightweight storage backend for K8s (https://docs.k3s.io/datastore) is proven to work.\u003cbr\u003e\n   Installing and using k3s with postgresql/kqlite\n   ```sh\n   curl -sfL https://get.k3s.io | sh -s - server --token=SECRET --datastore-endpoint=\"postgres://127.0.0.1:5432/kine?sslmode=disable\"\n   ```\n  \u003e [!NOTE]\n  \u003e Encryption is not available yet,\u003cbr\u003e\n  \u003e add `sslmode=disable` in the endpoint address ex. `postgres://127.0.0.1:5432/kine?sslmode=disable`.\n    \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkqlite%2Fkqlite","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkqlite%2Fkqlite","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkqlite%2Fkqlite/lists"}