{"id":9549,"url":"https://github.com/rakyll/awesome-spanner","name":"awesome-spanner","description":"A curated list of awesome Google Cloud Spanner references, tools, libraries and more.","projects_count":53,"last_synced_at":"2026-08-25T04:00:20.679Z","repository":{"id":141459452,"uuid":"246135802","full_name":"rakyll/awesome-spanner","owner":"rakyll","description":"A curated list of awesome Google Cloud Spanner references, tools, libraries and more.","archived":false,"fork":false,"pushed_at":"2020-04-19T22:48:25.000Z","size":4,"stargazers_count":95,"open_issues_count":1,"forks_count":6,"subscribers_count":3,"default_branch":"master","last_synced_at":"2026-08-05T16:31:20.788Z","etag":null,"topics":["google-cloud","google-cloud-spanner"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rakyll.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2020-03-09T20:30:21.000Z","updated_at":"2026-06-06T18:14:29.000Z","dependencies_parsed_at":"2024-01-14T22:02:48.420Z","dependency_job_id":"d4b2316e-a749-4547-a5c9-cdfe4c9204d3","html_url":"https://github.com/rakyll/awesome-spanner","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/rakyll/awesome-spanner","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rakyll%2Fawesome-spanner","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rakyll%2Fawesome-spanner/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rakyll%2Fawesome-spanner/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rakyll%2Fawesome-spanner/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rakyll","download_url":"https://codeload.github.com/rakyll/awesome-spanner/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rakyll%2Fawesome-spanner/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36891732,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-08-22T15:14:58.755Z","status":"online","status_checked_at":"2026-08-25T02:00:06.831Z","response_time":104,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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"}},"created_at":"2024-01-12T17:55:44.266Z","updated_at":"2026-08-25T04:00:20.679Z","primary_language":null,"list_of_lists":false,"displayable":true,"categories":["Documentation","Libraries and ORM","Tools","Configuration Management","Migration","Performance and Debugging","Whitepapers","Talks","Podcasts","Meetups"],"sub_categories":["Client Libraries","Drivers","ORM"],"readme":"# Awesome Spanner\n\nA curated list of awesome [Google Cloud Spanner](https://cloud.google.com/spanner) \ntools, libraries and more. Please suggest new entries if\nyou know other awesome Spanner resources.\n\n## Documentation\n\n* [Official Documentation](https://cloud.google.com/spanner)\n* [Best Practices](https://cloud.google.com/spanner/docs/best-practice-list)\n* [API Reference](https://cloud.google.com/spanner/docs/reference/rest)\n* [GCP Weekly: Spanner](https://www.gcpweekly.com/gcp-resources/tag/google-cloud-spanner/)\n\n## Libraries and ORM\n\n### Client Libraries\n\n* [Authentication via Application Default Credentials (ADC)](https://cloud.google.com/docs/authentication/production)\n* [Java](https://googleapis.dev/java/google-cloud-clients/0.119.0-alpha/com/google/cloud/spanner/package-summary.html) ([tutorial](https://cloud.google.com/spanner/docs/getting-started/java))\n* [Go](https://pkg.go.dev/cloud.google.com/go/spanner) ([tutorial](https://cloud.google.com/spanner/docs/getting-started/go))\n* [Node.js](https://googleapis.dev/nodejs/spanner/latest/) ([tutorial](https://cloud.google.com/spanner/docs/getting-started/nodejs))\n* [Python](https://googleapis.dev/python/spanner/latest/index.html) ([tutorial](https://cloud.google.com/spanner/docs/getting-started/python))\n* [PHP](https://googleapis.github.io/google-cloud-php/#/docs/google-cloud/latest/spanner/readme) ([tutorial](https://cloud.google.com/spanner/docs/getting-started/php))\n* [Ruby](https://googleapis.dev/ruby/google-cloud-spanner/latest/Google/Cloud/Spanner.html) ([tutorial](https://cloud.google.com/spanner/docs/getting-started/ruby))\n* [C#](https://googleapis.github.io/google-cloud-dotnet/docs/Google.Cloud.Spanner.Data/api/Google.Cloud.Spanner.Data.html) ([tutorial](https://cloud.google.com/spanner/docs/getting-started/csharp))\n\n### Drivers\n\n* [Google's OSS](https://cloud.google.com/spanner/docs/jdbc-drivers) JDBC driver\n* [Simba](https://cloud.google.com/spanner/docs/jdbc-drivers) JDBC driver\n* [R2DBC](https://github.com/GoogleCloudPlatform/cloud-spanner-r2dbc) driver\n* [Go database/sql](https://github.com/rakyll/go-sql-driver-spanner) driver\n\n### ORM\n\n* [Django](https://github.com/googleapis/python-spanner-django/)\n* [Hibernate ORM](https://cloud.google.com/spanner/docs/use-hibernate)\n* [Spring Data](https://cloud.google.com/spanner/docs/adding-spring)\n\n## Tools\n\n* [Spanner Console](https://console.cloud.google.com/spanner)\n* [Spanner command-line](https://github.com/cloudspannerecosystem/spanner-cli)\n* [gcloud Reference](https://cloud.google.com/sdk/gcloud/reference/spanner)\n* [Spanner Emulator](https://github.com/GoogleCloudPlatform/cloud-spanner-emulator)\n* [wrench](https://github.com/cloudspannerecosystem/wrench) - Schema management tool for Spanner.\n* [hammer](https://github.com/daichirata/hammer) - Schema management tool for Spanner.\n* [yo](https://github.com/cloudspannerecosystem/yo) - A command-line tool to generate Go code for Google Cloud Spanner.\n* [handy-spanner](https://github.com/gcpug/handy-spanner) - An unofficial SQLite backed Spanner emulator.\n* [spannerz](https://github.com/rakyll/spannerz) - Query planner visualizer that also provides introspection tools for Go programs.\n* [spanner-dump](https://github.com/cloudspannerecosystem/spanner-dump) - A command-line tool to export Cloud Spanner databases in text format.\n\n## Configuration Management\n\n* [Chef](https://github.com/GoogleCloudPlatform/chef-google-spanner)\n* [Puppet](https://github.com/GoogleCloudPlatform/puppet-google-spanner)\n* [Terraform](https://www.terraform.io/docs/providers/google/r/spanner_database.html)\n\n## Migration\n\n* Migration from [PostgreSQL](https://cloud.google.com/spanner/docs/migrating-postgres-spanner), [MySQL](https://cloud.google.com/solutions/migrating-mysql-to-spanner), [Oracle](https://cloud.google.com/solutions/migrating-oracle-to-cloud-spanner), [DynomoDB](https://cloud.google.com/solutions/migrating-dynamodb-to-cloud-spanner). \n* [Harbourbridge](https://github.com/cloudspannerecosystem/harbourbridge) - PostgreSQL to Spanner schema and data migrator.\n* [pgadapter](https://github.com/cloudspannerecosystem/pgadapter) - A proxy that translates the wire protocol from Postgres to Cloud Spanner.\n* [migrate](https://github.com/golang-migrate/migrate) - A migration tool with Spanner support.\n\n## Performance and Debugging\n\n* [Query Execution Plans](https://cloud.google.com/spanner/docs/query-execution-plans)\n* [SQL Best Practices](https://cloud.google.com/spanner/docs/sql-best-practices)\n* [CPU Utilization](https://cloud.google.com/spanner/docs/cpu-utilization)\n* [Latency Debugging](https://cloud.google.com/spanner/docs/latency)\n* [Distributed Tracing and Client Metrics](https://medium.com/@orijtech/cloud-spanner-instrumented-by-opencensus-and-exported-to-stackdriver-6ed61ed6ab4e)\n\n\n## Whitepapers\n\n* [Spanner: Google's Globally-Distributed Database](https://research.google/pubs/pub39966/)\n* [Spanner, TrueTime and the CAP Theorem](https://research.google/pubs/pub45855/)\n* [Spanner: Becoming a SQL System](https://research.google/pubs/pub46103/)\n\n## Talks\n\n* [Cloud Spanner 101: Google's mission-critical relational database](https://www.youtube.com/watch?v=IfsTINNCooY)\n* [Spanner Internals Part 1: What Makes Spanner Tick?](https://www.youtube.com/watch?v=nvlt0dA7rsQ)\n* [Spanner Internals Part 2: Global Meta-Data and Scalable Data Backend](https://www.youtube.com/watch?v=zy-rcR4MoN4)\n* [Best Practices on Migrating to Cloud Spanner](https://www.youtube.com/watch?v=FNeGQUqMa_c)\n* [Ben Sigelman presents the Spanner whitepaper](https://youtu.be/mYV6_OaZeEs?t=1629)\n\n## Podcasts\n\n* [Google Cloud Platform Podcast](https://www.gcppodcast.com/post/episode-62-cloud-spanner-with-deepti-srivastava/)\n* [Software Engineering Daily](https://softwareengineeringdaily.com/2019/09/10/google-spanner-with-deepti-srivastava)\n* [The Architect](http://architechtshow.com/ep-44-googles-deepti-srivastava-on-multi-region-spanner-and-case-for-cloud-databases)\n\n## Meetups\n\n* [Google Cloud Spanner Developers](https://www.meetup.com/Cloud-Spanner-Developers/), San Francisco, CA","projects_url":"https://awesome.ecosyste.ms/api/v1/lists/rakyll%2Fawesome-spanner/projects"}