#remote #bazel #protobuf #serialization

bazel-remote-apis

Rust bindings for Bazel Remote APIs

13 breaking releases

new 0.16.0 Mar 12, 2025
0.14.0 Jan 12, 2025
0.11.0 Nov 29, 2024

#340 in Encoding

Download history 218/week @ 2024-11-20 395/week @ 2024-11-27 199/week @ 2024-12-04 86/week @ 2024-12-11 49/week @ 2024-12-18 162/week @ 2024-12-25 665/week @ 2025-01-01 671/week @ 2025-01-08 79/week @ 2025-01-15 462/week @ 2025-01-22 504/week @ 2025-01-29 431/week @ 2025-02-05 311/week @ 2025-02-12 236/week @ 2025-02-19 421/week @ 2025-02-26 543/week @ 2025-03-05

1,659 downloads per month

MIT license

10MB
162K SLoC

Bazel 136K 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