{"id":26447612,"url":"https://github.com/abitofhelp/bazel_monorepo_go_rust","last_synced_at":"2026-04-20T09:34:01.820Z","repository":{"id":207332952,"uuid":"718877598","full_name":"abitofhelp/bazel_monorepo_go_rust","owner":"abitofhelp","description":"This repository contains a monorepo, polyglot project consisting of a library for Go and Rust.","archived":false,"fork":false,"pushed_at":"2023-11-16T09:59:25.000Z","size":166,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-08-28T17:53:32.968Z","etag":null,"topics":["bazel","cargo","go","golang","monorepo","polyglot","rust"],"latest_commit_sha":null,"homepage":"","language":"Starlark","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/abitofhelp.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":"2023-11-15T01:10:23.000Z","updated_at":"2023-11-15T08:10:19.000Z","dependencies_parsed_at":"2023-11-15T09:26:59.820Z","dependency_job_id":"cfcf857a-8cf6-4a0d-82e9-794425174cac","html_url":"https://github.com/abitofhelp/bazel_monorepo_go_rust","commit_stats":null,"previous_names":["abitofhelp/bazel_monorepo_go_rust"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/abitofhelp/bazel_monorepo_go_rust","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abitofhelp%2Fbazel_monorepo_go_rust","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abitofhelp%2Fbazel_monorepo_go_rust/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abitofhelp%2Fbazel_monorepo_go_rust/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abitofhelp%2Fbazel_monorepo_go_rust/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/abitofhelp","download_url":"https://codeload.github.com/abitofhelp/bazel_monorepo_go_rust/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abitofhelp%2Fbazel_monorepo_go_rust/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32041536,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-20T00:18:06.643Z","status":"online","status_checked_at":"2026-04-20T02:00:06.527Z","response_time":94,"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":["bazel","cargo","go","golang","monorepo","polyglot","rust"],"created_at":"2025-03-18T13:57:52.856Z","updated_at":"2026-04-20T09:34:01.789Z","avatar_url":"https://github.com/abitofhelp.png","language":"Starlark","funding_links":[],"categories":[],"sub_categories":[],"readme":"## bazel\\_monorepo\\_go\\_rust\n\nThis repository contains a monorepo, polyglot project consisting of a library for Go and Rust.  \nThese libraries can be built using the appropriate native tool -- go build or Cargo -- and Bazel.  \nThe source of truth for dependencies are the go.mod/vendors and Cargo files.  \nThe Makefile contains many queries and commands for using the native tools for Go and Rust within Bazel as well as Bazel commands.\n\n## Valid Bazel Labels\n\n*   //pkg/golang:srcs\n*   //pkg/golang/src/grpc\\_client\\_lib:grpc\\_client\\_lib\n*   //pkg/golang/src/grpc\\_client\\_lib:grpc\\_client\\_lib\\_test\n*   //pkg/rust/src:srcs\n*   //pkg/rust/src/grpc\\_client\\_lib:grpc\\_client\\_lib\n*   //pkg/rust/src/grpc\\_client\\_lib:grpc\\_client\\_lib\\_test\n\n## To Change Go's and Rust's Versions\n\n*   Execute the set\\_golang\\_version command in the Makefile.\n*   Execute the set\\_rust\\_version command in the Makefile.\n\n## To Add A New Go Project\n\n*   Create a directory in /pkg/golang/src for the new Go project.\n*   Clone the files from grpc\\_client\\_lib to the new project's directory.\n*   Amend the files for the new project's needs.\n*   Add the relative path to the new project to the use() in go.work.\n    *   i.e. /pkg/golang/src/mynewproject\n*   You may want to clone the build\\_grpc\\_golang\\_client\\_lib command in the Makefile for directly building the new project.\n*   Verify that you can build the Go projects by executing the go\\_build\\_all (go build used) command in the Makefile.\n*   Verify that you can build the Go projects by executing the build\\_all (bazel used) command in the Makefile.\n\n## To Add A New Rust Project\n\n*   Create a directory in /pkg/rust/src for the new Rust project.\n*   Clone the files from grpc\\_client\\_lib to the new project's directory.\n*   Amend the files for the new project's needs.\n*   Add the bazel target to the new project to the crates\\_repository.manifests block in the WORKSPACE file.\n\n```crates_repository( name = \"crate_index\", cargo_lockfile = \"//:Cargo.lock\", lockfile = \"//:cargo-bazel-lock.json\", manifests = [ \"//:Cargo.toml\", \"//:pkg/rust/src/grpc_client_lib/Cargo.toml\", \"//:pkg/rust/src/mynewproject/Cargo.toml\", ], )```\n\n*   You may want to clone the build\\_grpc\\_rust\\_client\\_lib command in the Makefile for directly building the new project.\n*   Add the relative path to the new project to the workspace.members block in Cargo.toml file.\n\n```[workspace] resolver = \"2\" members = [ \"pkg/rust/src/grpc_client_lib\", \"pkg/rust/src/mynewproject\", ]```\n\n*   Verify that you can build the Rust projects by executing the rust\\_build\\_all (Cargo used) command in the Makefile.\n*   Verify that you can build the Rust projects by executing the build\\_all (bazel used) command in the Makefile.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fabitofhelp%2Fbazel_monorepo_go_rust","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fabitofhelp%2Fbazel_monorepo_go_rust","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fabitofhelp%2Fbazel_monorepo_go_rust/lists"}