{"id":18736843,"url":"https://github.com/bitwizeshift/protobuild","last_synced_at":"2025-11-17T04:30:14.509Z","repository":{"id":241438166,"uuid":"805868884","full_name":"bitwizeshift/protobuild","owner":"bitwizeshift","description":null,"archived":false,"fork":false,"pushed_at":"2024-09-09T19:13:04.000Z","size":139,"stargazers_count":0,"open_issues_count":2,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-02-13T04:54:35.002Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","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/bitwizeshift.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE-APACHE","code_of_conduct":".github/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":".github/SECURITY.md","support":".github/SUPPORT.md","governance":".github/GOVERNANCE.md","roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-05-25T17:38:22.000Z","updated_at":"2024-07-20T06:37:28.000Z","dependencies_parsed_at":"2024-05-28T10:59:41.043Z","dependency_job_id":"9d1aa6ec-2ed7-4421-b9cf-0b0d9f8b5545","html_url":"https://github.com/bitwizeshift/protobuild","commit_stats":null,"previous_names":["bitwizeshift/protobuild"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bitwizeshift%2Fprotobuild","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bitwizeshift%2Fprotobuild/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bitwizeshift%2Fprotobuild/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bitwizeshift%2Fprotobuild/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bitwizeshift","download_url":"https://codeload.github.com/bitwizeshift/protobuild/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239611993,"owners_count":19668274,"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","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-07T15:22:42.797Z","updated_at":"2025-11-17T04:30:14.480Z","avatar_url":"https://github.com/bitwizeshift.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ![`protobuild`](docs/src/logo.png)\n\n![Continuous Integration](https://img.shields.io/github/actions/workflow/status/bitwizeshift/protobuild/.github%2Fworkflows%2Fcontinuous-integration.yaml?logo=github)\n[![GitHub Release](https://img.shields.io/github/v/release/bitwizeshift/protobuild?include_prereleases)][github-releases]\n[![Gitter Channel](https://img.shields.io/badge/matrix-%23protobuild-darkcyan?logo=gitter)][gitter-channel]\n[![readthedocs](https://img.shields.io/badge/docs-readthedocs-blue?logo=readthedocs\u0026logoColor=white)][docs]\n[![Godocs](https://img.shields.io/badge/docs-godocs-blue?logo=go\u0026logoColor=white)][go-docs]\n\n[gitter-channel]: https://matrix.to/#/#protobuild:gitter.im\n[docs]: https://bitwizeshift.github.io/protobuild/\n[go-docs]: https://bitwizeshift.github.io/protobuild/pkg/github.com/bitwizeshift/protobuild\n[github-releases]: https://github.com/bitwizeshift/protobuild/releases\n\n\u003e [!NOTE]\n\u003e `protobuild` is a **work-in-progress** tool, so some documentation may be\n\u003e out-of-date or may represent the desired future state of the tool until the\n\u003e initial `v1.0` release.\n\nProtobuild is the missing coordinator/build-system for [protobuf] projects.\n\nThis offers an easy, data-driven build-system for generating protobuf\ndefinitions.\n\n`protobuild` is **free** for teams and companies to use, and always will be.\nNo subscription is required, like _some other tools_.\n\n\u003e [!IMPORTANT]\n\u003e This is not an official supported Google product.\n\n## Teaser\n\n\u003e [!NOTE]\n\u003e This section contains output from content that is not yet on `master`.\n\n```bash\n$ protobuild generate my-project\ntarget my-project depends on protocolbuffers/protobuf, google/fhir\n\nprotocolbuffers/protobuf\n  go .............................. ✔ (skipped)\n  go-grpc ......................... ✔ (not-needed)\n  python .......................... ✔\n  c++ ............................. ✔ (skipped)\n\ngoogle/fhir\n  go .............................. ✔ (skipped)\n  go-grpc ......................... ✔ (not-needed)\n  python .......................... ✔\n  c++ ............................. ✔ (skipped)\n\nmy-project\n  go .............................. ✔\n  go-grpc ......................... ✔\n  python .......................... ✔\n  c++ ............................. ✔\n\nGeneration successful\n```\n\n## Quick Links\n\n* [❓ Why?](#why)\n* [🥅 Project Goals](#project-goals)\n* [📖 Documentation](https://bitwizeshift.github.io/protobuild)\n  * [📦 Installation](https://bitwizeshift.github.io/protobuild)\n  * [🚀 Getting Started](https://bitwizeshift.github.io/protobuild)\n  * [🙋‍♂️ Contributing](https://bitwizeshift.github.io/protobuild)\n* [⚙️ Go Docs](https://bitwizeshift.github.io/protobuild/pkg/github.com/bitwizeshift/protobuild)\n* [⚖️ License](#license)\n\n## Why?\n\nAnyone who has worked in a large project with a lot of protocol buffers knows\nwhat a pain it is to coordinate the generation of protobuf definitions. It\nbecomes more complicated as more target-languages and plugins get into the mix,\nand overall has no _good_ solution to this.\n\nSome products exist in the market, like [`buf`], which privatizes and\ncentralizes registries behind a **paid subscription**. This forces a separate\nand orthogonal system for something that can easily be done locally; and\n`protobuild` aims to make this as easily and painlessly as possible.\n\n## Project Goals\n\nThe `protobuild` project aims to provide a safe, easy, and **free** mechanism\nto control building and generating Protocol buffers.\n\nBelow are some goals of this project:\n\n* [ ] Allow user-definitions of external protobuf projects\n* [ ] Allow custom `git`-driven registries of public protobuf projects, so that\n      teams may centralize their definitions.\n* [ ] Dependency tracing of protobuf projects.\n* [ ] Manage recipes for `protoc` plugin installations to better centralize this.\n* [ ] GitHub action support\n* [ ] Provide hosted JSON Schema definitions of the project files\n\n## License\n\nThis project is **dual-licensed** under both MIT and Apache-2.0, at the\nuser's choice.\n\n[protobuf]: https://protobuf.dev \"Protocol Buffers\"\n[`buf`]: https://buf.build/ \"buf.build\"\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbitwizeshift%2Fprotobuild","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbitwizeshift%2Fprotobuild","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbitwizeshift%2Fprotobuild/lists"}