{"id":50241764,"url":"https://github.com/goccy/googlesqlite","last_synced_at":"2026-05-26T21:34:53.339Z","repository":{"id":358242607,"uuid":"1214792609","full_name":"goccy/googlesqlite","owner":"goccy","description":"Run GoogleSQL using SQLite3 as the backend","archived":false,"fork":false,"pushed_at":"2026-05-25T03:02:21.000Z","size":2518,"stargazers_count":10,"open_issues_count":0,"forks_count":2,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-26T21:34:46.584Z","etag":null,"topics":["golang","golang-library","googlesql","sqlite","webassembly"],"latest_commit_sha":null,"homepage":"https://goccy.github.io/googlesqlite/","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/goccy.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,"notice":"NOTICE","maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-04-19T03:52:44.000Z","updated_at":"2026-05-25T03:02:23.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/goccy/googlesqlite","commit_stats":null,"previous_names":["goccy/googlesqlite"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/goccy/googlesqlite","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/goccy%2Fgooglesqlite","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/goccy%2Fgooglesqlite/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/goccy%2Fgooglesqlite/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/goccy%2Fgooglesqlite/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/goccy","download_url":"https://codeload.github.com/goccy/googlesqlite/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/goccy%2Fgooglesqlite/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33540615,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"ssl_error","status_checked_at":"2026-05-26T15:22:15.568Z","response_time":63,"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":["golang","golang-library","googlesql","sqlite","webassembly"],"created_at":"2026-05-26T21:34:51.320Z","updated_at":"2026-05-26T21:34:53.331Z","avatar_url":"https://github.com/goccy.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# GoogleSQLite\n\nGoogleSQLite is a Go project that runs GoogleSQL — the SQL dialect\nused by BigQuery and Cloud Spanner — on top of a SQLite backend. It is\nexposed as a `database/sql` driver, so any `database/sql` consumer gets\na local GoogleSQL execution engine with no external services to run.\n\nGoogleSQL parsing and analysis is provided by\n[`goccy/go-googlesql`](https://github.com/goccy/go-googlesql), and query\nexecution runs on\n[`ncruces/go-sqlite3`](https://github.com/ncruces/go-sqlite3). Both are\nimplemented in pure Go, so GoogleSQLite is pure Go as well — no cgo is\nrequired.\n\nBecause GoogleSQL is the dialect behind BigQuery and Cloud Spanner,\nthis project gives strong support to use cases such as locally\nemulating those services.\n\n## Usage\n\n```go\nimport (\n\t\"database/sql\"\n\n\t_ \"github.com/goccy/googlesqlite\"\n)\n\ndb, err := sql.Open(\"googlesqlite\", \":memory:\")\nif err != nil {\n\tlog.Fatal(err)\n}\ndefer db.Close()\n\nrows, err := db.Query(`SELECT FORMAT('%t', DATE '2026-05-14') AS today`)\n// ...\n```\n\nThe driver registers under `googlesqlite`. DSN is the underlying\nSQLite path (`:memory:`, a file path, or\n`file:foo.db?cache=shared`).\n\n## Playground\n\nTry GoogleSQLite in your browser, with nothing to install:\n\n**\u003chttps://goccy.github.io/googlesqlite/\u003e**\n\nThe Playground is the whole engine — GoogleSQL parsing, analysis, and\nthe SQLite backend — compiled to WebAssembly and run entirely\nclient-side. Highlights:\n\n- **No server, no install.** Every query is parsed, analyzed, and\n  executed inside the browser tab; nothing is sent anywhere.\n- **Responsive UI.** The engine runs in a Web Worker, so editing and\n  running queries never blocks the page.\n- **Persistent database.** The SQLite database lives in the Origin\n  Private File System (OPFS), so your tables and data survive page\n  reloads with no explicit save step.\n- **A real SQL editor**, with query history and result export.\n\nIt is the quickest way to explore the supported GoogleSQL syntax and\nfunctions without setting up a Go environment.\n\n## Status\n\nEvery function and type is backed by a declarative spec under\n`docs/specs/` and at least one upstream-sourced test case under\n`testdata/specs/`. The full support matrix — per-function and\nper-type status with a link to each spec — is generated from spec\nfrontmatter into [`docs/specs/INDEX.md`](docs/specs/INDEX.md).\n\nSpecs marked `partial` are documented gaps with a concrete\ninfrastructure dependency; see each spec's frontmatter `notes:`\nfield for what is missing.\n\n## Quick start\n\n```sh\nmake build            # build the bin/googlesqlite CLI\nmake test             # run unit and spec tests\nmake lint             # golangci-lint via tools/go.mod\nmake spec/upstream-sync   # refresh docs/third_party/googlesql-docs from upstream\n```\n\n## Layout\n\n- `docs/specs/` — canonical, normalized spec markdown (one file per\n  function/type).\n- `testdata/specs/` — declarative YAML test cases referenced by spec\n  frontmatter. The repo-root `TestSpec` runner executes each case\n  against the driver as a Go subtest.\n- `docs/third_party/googlesql-docs/` — Apache-2.0 snapshot of upstream\n  `google/googlesql` `docs/`. Refreshed by\n  `make spec/upstream-sync`.\n- `cmd/specctl/` — operational CLI (normalize, upstream-sync,\n  check, ...).\n- `tools/go.mod` — pinned developer tools (golangci-lint).\n\n## Sponsorship\n\nThis is a personal project. It is developed by referencing the\nopen-source GoogleSQL repository, but it receives no support of any kind\nfrom Google — no sponsorship, no contributions, no promotion.\n\nFor example, Google has had a request for a BigQuery emulator open on\nits Issue Tracker\n([issue 129248927](https://issuetracker.google.com/issues/129248927))\nfor seven years without taking any action. Unable to watch that any\nlonger, in 2022 I built\n[`goccy/bigquery-emulator`](https://github.com/goccy/bigquery-emulator)\n— the only BigQuery emulator in the world — and have maintained it ever\nsince.\n\nThis project is used by that `bigquery-emulator`. I do not use BigQuery\nin my own job, however. I simply happen to have the skills to build\nthis, noticed how many people are struggling without it, and so I spend\nmy personal time and money on it.\n\nBecause of that, keeping this project alive needs your help. Emulating\nBigQuery locally brings many benefits to development and can\nsignificantly cut development costs. Could you return a small part of\nthose savings to me? I believe doing so leads to a better future for\nboth me and your company.\n\nSee `CLAUDE.md` for the project's working rules.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgoccy%2Fgooglesqlite","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgoccy%2Fgooglesqlite","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgoccy%2Fgooglesqlite/lists"}