diff --git a/plugins/anthropics/buffa/v0.8.0/.dockerignore b/plugins/anthropics/buffa/v0.8.0/.dockerignore new file mode 100644 index 000000000..5d0f124ff --- /dev/null +++ b/plugins/anthropics/buffa/v0.8.0/.dockerignore @@ -0,0 +1,2 @@ +* +!Dockerfile diff --git a/plugins/anthropics/buffa/v0.8.0/Dockerfile b/plugins/anthropics/buffa/v0.8.0/Dockerfile new file mode 100644 index 000000000..942e1594d --- /dev/null +++ b/plugins/anthropics/buffa/v0.8.0/Dockerfile @@ -0,0 +1,15 @@ +# syntax=docker/dockerfile:1.24 +FROM rust:1.96.0-alpine3.23@sha256:5dc2af9dd547c33f64d5fc1d299ab93b51f39eaa16c426c476b990ce6caf5b3e 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.8.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-buffa /protoc-gen-buffa +USER nobody +ENTRYPOINT ["/protoc-gen-buffa"] diff --git a/plugins/anthropics/buffa/v0.8.0/buf.plugin.yaml b/plugins/anthropics/buffa/v0.8.0/buf.plugin.yaml new file mode 100644 index 000000000..410a21f2f --- /dev/null +++ b/plugins/anthropics/buffa/v0.8.0/buf.plugin.yaml @@ -0,0 +1,55 @@ +version: v1 +name: buf.build/anthropics/buffa +plugin_version: v0.8.0 +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.8.0/LICENSE +registry: + cargo: + rust_version: "1.75" # https://github.com/anthropics/buffa/blob/v0.8.0/Cargo.toml#L35 + deps: + # Runtime: wire format, Message trait, view types, JSON helpers. + # https://github.com/anthropics/buffa/blob/v0.8.0/buffa/Cargo.toml + - name: "buffa" + req: "0.8.0" + 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.8.0" + default_features: true + features: + - json + - name: "buffa-descriptor" + req: "0.8.0" + 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/tests/testdata/buf.build/anthropics/buffa/v0.8.0/eliza/plugin.sum b/tests/testdata/buf.build/anthropics/buffa/v0.8.0/eliza/plugin.sum new file mode 100644 index 000000000..970bb8041 --- /dev/null +++ b/tests/testdata/buf.build/anthropics/buffa/v0.8.0/eliza/plugin.sum @@ -0,0 +1 @@ +h1:5vXxpiByArtaI1/hOZnjCT31tGCj3pHM1HEZuaMkxTI= diff --git a/tests/testdata/buf.build/anthropics/buffa/v0.8.0/petapis/plugin.sum b/tests/testdata/buf.build/anthropics/buffa/v0.8.0/petapis/plugin.sum new file mode 100644 index 000000000..4e267c1c8 --- /dev/null +++ b/tests/testdata/buf.build/anthropics/buffa/v0.8.0/petapis/plugin.sum @@ -0,0 +1 @@ +h1:MChVxS+MS7i/0g93b+0p+jFzICM72NSkCg3UMdsJng8=