{"id":18753010,"url":"https://github.com/spotify/proto-registry","last_synced_at":"2025-10-07T12:45:48.251Z","repository":{"id":33952095,"uuid":"151753002","full_name":"spotify/proto-registry","owner":"spotify","description":"An implementation of the Protobuf Registry API","archived":false,"fork":false,"pushed_at":"2024-01-11T13:54:19.000Z","size":2666,"stargazers_count":143,"open_issues_count":29,"forks_count":14,"subscribers_count":14,"default_branch":"master","last_synced_at":"2025-08-03T22:45:55.249Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/spotify.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}},"created_at":"2018-10-05T17:03:47.000Z","updated_at":"2024-12-10T09:32:33.000Z","dependencies_parsed_at":"2024-06-18T21:52:39.920Z","dependency_job_id":null,"html_url":"https://github.com/spotify/proto-registry","commit_stats":{"total_commits":49,"total_committers":4,"mean_commits":12.25,"dds":"0.26530612244897955","last_synced_commit":"2ea46672027506859222fad372f9fb4923315734"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/spotify/proto-registry","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spotify%2Fproto-registry","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spotify%2Fproto-registry/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spotify%2Fproto-registry/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spotify%2Fproto-registry/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/spotify","download_url":"https://codeload.github.com/spotify/proto-registry/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spotify%2Fproto-registry/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278778960,"owners_count":26044256,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-07T02:00:06.786Z","response_time":59,"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"}},"keywords":[],"created_at":"2024-11-07T17:23:45.965Z","updated_at":"2025-10-07T12:45:48.216Z","avatar_url":"https://github.com/spotify.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Proto registry [![CircleCI](https://circleci.com/gh/spotify/proto-registry.svg?style=svg\u0026circle-token=b6db707b79e5d01a588b64b78fe535ba3e13557c)](https://circleci.com/gh/spotify/proto-registry)\n\n\n**Note:** This project has been discontinued. \n\n\nThis is an implementation of a Protobuf schema registry.  Right now, the implementation is fairly\nbasic and focuses on the documentation aspects of a registry.  It is used internally at Spotify\nto power our API documentation for gRPC services.\n\n## Demo\n\nA test instance is hosted on Netlify at \u003chttps://spotify-proto-registry.netlify.com/\u003e.  Note that\nthis instance only hosts documentation, and will not serve [Type] requests correctly, because\nNetlify only offers hosting of static HTML pages.\n\n## Docker image\n\nThis repository builds a docker image that can be used to generate a Protobuf registry for any\nset of schemas.\n\nFor example, using Google Cloud Build, put this in your `cloudbuild.yaml`:\n\n```yaml\nsteps:\n  - name: 'spotify/proto-registry-builder:\u003cversion\u003e'\n    envs:\n      INPUT: 'schema.fds.pb' # path to a binary Protobuf file containing a FileDescriptorSet\n      OUTPUT: 'registry' # path to a directory where a Dockerfile + data should be put\n  - name: 'gcr.io/cloud-builders/docker'\n    args: [ 'build', '-t', 'gcr.io/$PROJECT_ID/registry', 'registry' ]\n```\n\n## Development\n\nRight now, the building process is a bit hacky.  It assumes that there is a file in\n`src/schema/schema.pb` containing a `FileDescriptorSet` containing the schema to be browsed.  You\ncan generate that file by running this command on some arbitrary protobufs:\n\n    protoc --include_imports --include_source_info \\\n      -o path/to/src/schema/schema.pb \\\n      -I dir dir/**/*.proto\n\nThere is a file descriptor set used by the tests that is generated with the `./test/update-testdata`\nscript that you can use if you don't have `protoc` installed:\n\n    gunzip -k test/testdata.fds.pb.gz\n    cp test/testdata.fds.pb src/schema/schema.pb\n\nAfter that, simply run the usual:\n\n    yarn\n    yarn start\n\n## Design considerations\n\nThe registry responds to resources at `/\u003ctype name\u003e` only.  This matches the API of the\n[`Any`][Any] type.  The idea is that the registry should respond with documentation when\nrequested (e.g. when the request specifies `Accept: text/html` or similar) and with a\n[`Type`][Type] otherwise.\n\n## Code of Conduct\n\nThis project adheres to the [Open Code of Conduct][code-of-conduct]. By participating, you are\nexpected to honor this code.\n\n[code-of-conduct]: https://github.com/spotify/code-of-conduct/blob/master/code-of-conduct.md\n[Any]: https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#google.protobuf.Any\n[Type]: https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#google.protobuf.Type\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fspotify%2Fproto-registry","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fspotify%2Fproto-registry","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fspotify%2Fproto-registry/lists"}