diff --git a/plugins/anthropics/buffa/v0.7.1/.dockerignore b/plugins/anthropics/buffa/v0.7.1/.dockerignore new file mode 100644 index 000000000..5d0f124ff --- /dev/null +++ b/plugins/anthropics/buffa/v0.7.1/.dockerignore @@ -0,0 +1,2 @@ +* +!Dockerfile diff --git a/plugins/anthropics/buffa/v0.7.1/Dockerfile b/plugins/anthropics/buffa/v0.7.1/Dockerfile new file mode 100644 index 000000000..94f1a0694 --- /dev/null +++ b/plugins/anthropics/buffa/v0.7.1/Dockerfile @@ -0,0 +1,15 @@ +# syntax=docker/dockerfile:1.24 +FROM rust:1.96.0-alpine3.23@sha256:66f48b19d6e88519e2e58bebe0d945779a6a4ca41c2db17db78c9569655b50ac AS builder +RUN apk add --no-cache musl-dev +WORKDIR /app +ENV CARGO_REGISTRIES_CRATES_IO_PROTOCOL=sparse +RUN --mount=type=cache,target=/usr/local/cargo/registry,sharing=locked --mount=type=cache,target=/root/target \ + cargo install protoc-gen-buffa --version 0.7.1 --locked --root /app + +FROM gcr.io/distroless/static-debian13:latest@sha256:3592aa8171c77482f62bbc4164e6a2d141c6122554ace66e5cc910cadb961ff0 AS base + +FROM scratch +COPY --link --from=base / / +COPY --link --from=builder /app/bin/protoc-gen-buffa /protoc-gen-buffa +USER nobody +ENTRYPOINT ["/protoc-gen-buffa"] diff --git a/plugins/anthropics/buffa/v0.7.1/buf.plugin.yaml b/plugins/anthropics/buffa/v0.7.1/buf.plugin.yaml new file mode 100644 index 000000000..92ff1c3f3 --- /dev/null +++ b/plugins/anthropics/buffa/v0.7.1/buf.plugin.yaml @@ -0,0 +1,55 @@ +version: v1 +name: buf.build/anthropics/buffa +plugin_version: v0.7.1 +source_url: https://github.com/anthropics/buffa +description: Generates Rust message types with buffa, a zero-copy Protobuf implementation with editions support and no_std compatibility. +output_languages: + - rust +spdx_license_id: Apache-2.0 +license_url: https://github.com/anthropics/buffa/blob/v0.7.1/LICENSE +registry: + cargo: + rust_version: "1.87" # https://github.com/anthropics/buffa/blob/v0.7.1/Cargo.toml#L30 + deps: + # Runtime: wire format, Message trait, view types, JSON helpers. + # https://github.com/anthropics/buffa/blob/v0.7.1/buffa/Cargo.toml + - name: "buffa" + req: "0.7.1" + default_features: true + features: + - json + - text + # Well-known types (Timestamp, Duration, Any, Struct, etc.). + # Generated code references these via the auto-injected + # extern_path mapping `.google.protobuf` -> `::buffa_types::google::protobuf`. + - name: "buffa-types" + req: "0.7.1" + default_features: true + features: + - json + - name: "buffa-descriptor" + req: "0.7.1" + default_features: true + features: + - json + - views + - text + # Generated code derives `::serde::Serialize` / `::serde::Deserialize` + # directly when json=true, so serde must be a direct dep. + - name: "serde" + req: "1" + default_features: true + features: + - derive + opts: + # Enable serde derives + proto3 JSON mapping helpers. Required for + # downstream plugins that need the Connect protocol's JSON codec. + - json=true + # Enable textproto encoding/decoding. + - text=true + # Zero-copy view types. Default, but explicit for clarity. + - views=true + # Emit one `.rs` per proto package instead of one + # file per proto file. Matches the prost/tonic filename convention + # the BSR Rust SDK lib.rs synthesis expects. + - file_per_package=true diff --git a/plugins/anthropics/connect-rust/v0.7.0/.dockerignore b/plugins/anthropics/connect-rust/v0.7.0/.dockerignore new file mode 100644 index 000000000..5d0f124ff --- /dev/null +++ b/plugins/anthropics/connect-rust/v0.7.0/.dockerignore @@ -0,0 +1,2 @@ +* +!Dockerfile diff --git a/plugins/anthropics/connect-rust/v0.7.0/Dockerfile b/plugins/anthropics/connect-rust/v0.7.0/Dockerfile new file mode 100644 index 000000000..1ba5decc4 --- /dev/null +++ b/plugins/anthropics/connect-rust/v0.7.0/Dockerfile @@ -0,0 +1,17 @@ +# syntax=docker/dockerfile:1.24 +FROM rust:1.96.0-alpine3.23@sha256:66f48b19d6e88519e2e58bebe0d945779a6a4ca41c2db17db78c9569655b50ac AS builder +RUN apk add --no-cache musl-dev +WORKDIR /app +ENV CARGO_REGISTRIES_CRATES_IO_PROTOCOL=sparse +# The protoc-gen-connect-rust binary is a [[bin]] target in the +# connectrpc-codegen crate. cargo install compiles it by crate name. +RUN --mount=type=cache,target=/usr/local/cargo/registry,sharing=locked --mount=type=cache,target=/root/target \ + cargo install connectrpc-codegen --version 0.7.0 --locked --root /app + +FROM gcr.io/distroless/static-debian13:latest@sha256:3592aa8171c77482f62bbc4164e6a2d141c6122554ace66e5cc910cadb961ff0 AS base + +FROM scratch +COPY --link --from=base / / +COPY --link --from=builder /app/bin/protoc-gen-connect-rust /protoc-gen-connect-rust +USER nobody +ENTRYPOINT ["/protoc-gen-connect-rust"] diff --git a/plugins/anthropics/connect-rust/v0.7.0/buf.plugin.yaml b/plugins/anthropics/connect-rust/v0.7.0/buf.plugin.yaml new file mode 100644 index 000000000..e87c6d3a1 --- /dev/null +++ b/plugins/anthropics/connect-rust/v0.7.0/buf.plugin.yaml @@ -0,0 +1,55 @@ +version: v1 +name: buf.build/anthropics/connect-rust +plugin_version: v0.7.0 +source_url: https://github.com/anthropics/connect-rust +description: Generates ConnectRPC service traits, typed clients, and monomorphic dispatchers for Rust. Compatible with the Connect, gRPC, and gRPC-Web protocols. Passes the full ConnectRPC conformance suite. +deps: + - plugin: buf.build/anthropics/buffa:v0.7.1 +output_languages: + - rust +spdx_license_id: Apache-2.0 +license_url: https://github.com/anthropics/connect-rust/blob/v0.7.0/LICENSE +registry: + cargo: + rust_version: "1.88" + deps: + # ConnectRPC runtime: Router, Context, ConnectError, client transports. + # https://github.com/anthropics/connect-rust/blob/v0.7.0/connectrpc/Cargo.toml + - name: "connectrpc" + req: "0.7.0" + default_features: true + # Generated service stubs use buffa::Message, buffa::view::OwnedView, + # buffa::bytes::Bytes directly. Message types live in the buffa SDK + # crate (via the plugin dep above); this dep is for the runtime API. + - name: "buffa" + req: "0.7.1" + default_features: true + # Well-known types. Service stubs whose request/response types are + # WKTs (e.g. google.longrunning.Operations) reference them as + # `::buffa_types::google::protobuf::...`, mirroring buffa-codegen's + # extern_path mapping for `.google.protobuf`. Must be a direct dep + # so the `::buffa_types` path resolves in the generated crate. + - name: "buffa-types" + req: "0.7.1" + default_features: true + features: + - json + # Streaming method signatures use futures::Stream. + - name: "futures" + req: "0.3" + default_features: true + # Client transport bounds reference http_body::Body. + - name: "http-body" + req: "1" + default_features: true + # The plugin accepts `extern_path=.=` (or the shorthand + # `buffa_module=`) to tell it where the buffa-generated message + # types live. BSR should inject this based on the buffa dep's SDK crate + # name, same as tonic receives extern_path for its prost dep. Leaving + # it out here; please advise if an explicit entry is needed. + opts: + # Emit one `.rs` per proto package, mirroring the + # buffa plugin's `file_per_package=true` opt. Matches the + # prost/tonic filename convention the BSR Rust SDK lib.rs + # synthesis expects. + - file_per_package diff --git a/plugins/grpc/java/v1.82.0/.dockerignore b/plugins/grpc/java/v1.82.0/.dockerignore new file mode 100644 index 000000000..7ff6309df --- /dev/null +++ b/plugins/grpc/java/v1.82.0/.dockerignore @@ -0,0 +1,3 @@ +* +!Dockerfile +!pom.xml diff --git a/plugins/grpc/java/v1.82.0/Dockerfile b/plugins/grpc/java/v1.82.0/Dockerfile new file mode 100644 index 000000000..75e20a5c4 --- /dev/null +++ b/plugins/grpc/java/v1.82.0/Dockerfile @@ -0,0 +1,29 @@ +# syntax=docker/dockerfile:1.24 +FROM debian:trixie-20260610@sha256:fe7312b5f05bf5f43fad76bcd8945642e4e47a68aefd1b73f447615899d0fac1 AS build + +ARG TARGETARCH + +WORKDIR /build +RUN apt-get update \ + && apt-get install -y curl +RUN arch=${TARGETARCH}; \ + if [ "${arch}" = "arm64" ]; then\ + arch="aarch_64"; \ + elif [ "${arch}" = "amd64" ]; then\ + arch="x86_64"; \ + fi; \ + echo "${arch}"; \ + curl -fsSL -o protoc-gen-grpc-java https://repo1.maven.org/maven2/io/grpc/protoc-gen-grpc-java/1.82.0/protoc-gen-grpc-java-1.82.0-linux-${arch}.exe + +FROM gcr.io/distroless/cc-debian13:latest@sha256:a017e74bd2a12d98342dbecd33d121d2b160415ed777573dc1808969e989d94d AS base + +FROM maven:3.9.11-eclipse-temurin-21 AS maven-deps +COPY pom.xml /tmp/pom.xml +RUN cd /tmp && mvn -f pom.xml dependency:go-offline + +FROM scratch +COPY --link --from=base / / +COPY --link --from=build --chmod=0755 --chown=root:root /build/protoc-gen-grpc-java . +COPY --from=maven-deps /root/.m2/repository /maven-repository +USER nobody +ENTRYPOINT [ "/protoc-gen-grpc-java" ] diff --git a/plugins/grpc/java/v1.82.0/buf.plugin.yaml b/plugins/grpc/java/v1.82.0/buf.plugin.yaml new file mode 100644 index 000000000..16fac24c4 --- /dev/null +++ b/plugins/grpc/java/v1.82.0/buf.plugin.yaml @@ -0,0 +1,30 @@ +version: v1 +name: buf.build/grpc/java +plugin_version: v1.82.0 +source_url: https://github.com/grpc/grpc-java +integration_guide_url: https://grpc.io/docs/languages/java/quickstart +description: Generates Java client and server stubs for the gRPC framework. +deps: + - plugin: buf.build/protocolbuffers/java:v35.0 +output_languages: + - java +spdx_license_id: Apache-2.0 +license_url: https://github.com/grpc/grpc-java/blob/v1.82.0/LICENSE +registry: + maven: + deps: + - io.grpc:grpc-core:1.82.0 + - io.grpc:grpc-protobuf:1.82.0 + - io.grpc:grpc-stub:1.82.0 + # Add direct dependency on newer protobuf as gRPC is still on 3.25.8 + - com.google.protobuf:protobuf-java:4.35.0 + additional_runtimes: + - name: lite + deps: + - io.grpc:grpc-core:1.82.0 + - io.grpc:grpc-protobuf-lite:1.82.0 + - io.grpc:grpc-stub:1.82.0 + # Add direct dependency on newer protobuf as gRPC is still on 3.25.8 + - com.google.protobuf:protobuf-javalite:4.35.0 + - build.buf:protobuf-javalite:4.35.0 + opts: [lite] diff --git a/plugins/grpc/java/v1.82.0/pom.xml b/plugins/grpc/java/v1.82.0/pom.xml new file mode 100644 index 000000000..fc0f8006a --- /dev/null +++ b/plugins/grpc/java/v1.82.0/pom.xml @@ -0,0 +1,44 @@ + + 4.0.0 + temp + temp + 1.0 + + + io.grpc + grpc-core + 1.82.0 + + + io.grpc + grpc-protobuf + 1.82.0 + + + io.grpc + grpc-stub + 1.82.0 + + + com.google.protobuf + protobuf-java + 4.35.0 + + + + io.grpc + grpc-protobuf-lite + 1.82.0 + + + com.google.protobuf + protobuf-javalite + 4.35.0 + + + build.buf + protobuf-javalite + 4.35.0 + + + diff --git a/tests/testdata/buf.build/anthropics/buffa/v0.7.1/eliza/plugin.sum b/tests/testdata/buf.build/anthropics/buffa/v0.7.1/eliza/plugin.sum new file mode 100644 index 000000000..889034382 --- /dev/null +++ b/tests/testdata/buf.build/anthropics/buffa/v0.7.1/eliza/plugin.sum @@ -0,0 +1 @@ +h1:vssJyzQImVhLWVYHlwMpsS7Cyj/0ru3sPD4EED8ehqU= diff --git a/tests/testdata/buf.build/anthropics/buffa/v0.7.1/petapis/plugin.sum b/tests/testdata/buf.build/anthropics/buffa/v0.7.1/petapis/plugin.sum new file mode 100644 index 000000000..8837fdce6 --- /dev/null +++ b/tests/testdata/buf.build/anthropics/buffa/v0.7.1/petapis/plugin.sum @@ -0,0 +1 @@ +h1:5SH4Q3m6XZzOSyuBTpPD6EqmXsulBS0Hq9S5wycRgfg= diff --git a/tests/testdata/buf.build/anthropics/connect-rust/v0.7.0/eliza/plugin.sum b/tests/testdata/buf.build/anthropics/connect-rust/v0.7.0/eliza/plugin.sum new file mode 100644 index 000000000..ec15d8b14 --- /dev/null +++ b/tests/testdata/buf.build/anthropics/connect-rust/v0.7.0/eliza/plugin.sum @@ -0,0 +1 @@ +h1:PSP+myIlbDXdCLfYhDnXhi5DI3zPC0+7Ae3Y2ge3NKc= diff --git a/tests/testdata/buf.build/anthropics/connect-rust/v0.7.0/petapis/plugin.sum b/tests/testdata/buf.build/anthropics/connect-rust/v0.7.0/petapis/plugin.sum new file mode 100644 index 000000000..a82c9bef2 --- /dev/null +++ b/tests/testdata/buf.build/anthropics/connect-rust/v0.7.0/petapis/plugin.sum @@ -0,0 +1 @@ +h1:AwNndHywdjxTwUG9Tv8N3/n3O/SNLNpqOOcOxSIY4Qo= diff --git a/tests/testdata/buf.build/grpc/java/v1.82.0/eliza/plugin.sum b/tests/testdata/buf.build/grpc/java/v1.82.0/eliza/plugin.sum new file mode 100644 index 000000000..6b03336c8 --- /dev/null +++ b/tests/testdata/buf.build/grpc/java/v1.82.0/eliza/plugin.sum @@ -0,0 +1 @@ +h1:abVqnZfKuwUcrLQyb+Lu2QqyVxyEnfIosZqrc8Lv/f0= diff --git a/tests/testdata/buf.build/grpc/java/v1.82.0/petapis/plugin.sum b/tests/testdata/buf.build/grpc/java/v1.82.0/petapis/plugin.sum new file mode 100644 index 000000000..a771e8f16 --- /dev/null +++ b/tests/testdata/buf.build/grpc/java/v1.82.0/petapis/plugin.sum @@ -0,0 +1 @@ +h1:LtrVq0lTE5qfsjeZj2BqKoPibzJpnzDsSY/jO/SrmoY=