Skip to content

buf convert

Convert a message between binary, text, or JSON

Usage

$ buf convert <input> [flags]

Description

Use an input proto to interpret a proto/json message and convert it to a different format.

Examples:

$ buf convert <input> --type=<type> --from=<payload> --to=<output>

The <input> can be a local .proto file, binary output of "buf build", bsr module or local buf module:

$ buf convert example.proto --type=Foo.proto --from=payload.json --to=output.binpb

All of <input>, "--from" and "to" accept formatting options:

$ buf convert example.proto#format=binpb --type=buf.Foo --from=payload#format=json --to=out#format=json

Both <input> and "--from" accept stdin redirecting:

$ buf convert <(buf build -o -)#format=binpb --type=foo.Bar --from=<(echo "{\"one\":\"55\"}")#format=json

Redirect from stdin to --from:

$ echo "{\"one\":\"55\"}" | buf convert buf.proto --type buf.Foo --from -#format=json

Redirect from stdin to <input>:

$ buf build -o - | buf convert -#format=binpb --type buf.Foo --from=payload.json

Use a module on the bsr:

$ buf convert <buf.build/owner/repository> --type buf.Foo --from=payload.json

Flags

Do not follow symlinks when reading sources or configuration from the local filesystem By default, symlinks are followed in this CLI, but never followed on the Buf Schema Registry

--error-format string

The format for build errors printed to stderr. Must be one of [text,json,msvs,junit,github-actions]

--from string

The location of the payload to be converted. Supported formats are [binpb,json,txtpb,yaml]

-h, --help

help for convert

--to string

The output location of the conversion. Supported formats are [binpb,json,txtpb,yaml]

--type string

The full type name of the message within the input (e.g. acme.weather.v1.Units)

--validate

Validate the message specified with --from by applying protovalidate rules to it. See https://github.com/bufbuild/protovalidate for more details.

Flags inherited from parent commands

--debug

Turn on debug logging

--log-format string

The log format [text,color,json]

--timeout duration

The duration until timing out, setting it to zero means no timeout

Parent Command

  • buf - The Buf CLI