#protobuf #bazel #build-system

bazel-remote-apis

Rust bindings for Bazel Remote APIs

15 breaking releases

new 0.18.0 Apr 11, 2025
0.17.0 Mar 26, 2025
0.16.0 Mar 12, 2025
0.11.0 Nov 29, 2024

#787 in Network programming

Download history 138/week @ 2024-12-22 237/week @ 2024-12-29 849/week @ 2025-01-05 342/week @ 2025-01-12 207/week @ 2025-01-19 637/week @ 2025-01-26 337/week @ 2025-02-02 405/week @ 2025-02-09 347/week @ 2025-02-16 212/week @ 2025-02-23 654/week @ 2025-03-02 725/week @ 2025-03-09 281/week @ 2025-03-16 545/week @ 2025-03-23 450/week @ 2025-03-30 391/week @ 2025-04-06

1,703 downloads per month

MIT license

10MB
164K SLoC

Bazel 138K SLoC // 0.1% comments Rust 19K SLoC // 0.0% comments Go 7K SLoC // 0.3% comments Shell 254 SLoC // 0.3% comments Forge Config 2 SLoC // 0.8% comments

Bazel Remote Apis for Rust

Usage

To use in your project, add into Cargo.toml:

[dependencies]
bazel-remote-apis = "0.14.0"

Feature serde adds implementation of serde::Serialize and serde::Deserialize traits for protobuf types.

Development

Protobuf files are vendored with git-vendor:

$ git vendor list
googleapis@master:
    name:   googleapis
    dir:    bzl-remote-apis/thirdparty/github.com/googleapis/googleapis
    repo:   https://github.com/googleapis/googleapis
    ref:    master
    commit: 351713de98ef863ad79e24e46a3d72c5f656d960

remote-apis@main:
    name:   remote-apis
    dir:    bzl-remote-apis/thirdparty/github.com/bazelbuild/remote-apis
    repo:   https://github.com/bazelbuild/remote-apis.git
    ref:    main
    commit: 080024152253a987d6bc4bcba4b20aa3484c1488

Build script is used to generate Rust source code from proto files into src/generated.

To update vendored dependencies and generate code run:

git vendor update googleapis
git vendor update bazel-remote-apis
cargo build --features codegen

Dependencies

~4–11MB
~114K SLoC