buf

The best way of working with Protocol Buffers.

APACHE-2.0 License

Downloads
1.6M
Stars
8.3K
Committers
76

Bot releases are hidden (Show)

buf - v1.27.2

Published by doriable 12 months ago

  • Fix issue where buf build and other commands may fail when handling certain
    archives created on macOS that contain files with extended attributes.
buf - v1.27.1

Published by saquibmian about 1 year ago

  • Fix issue in v1.27.0 where --path did not work with workspaces under certain scenarios.
buf - v1.14.0

Published by elliotmjackson over 1 year ago

  • Replace buf generate --include-types with buf generate --type for consistency. --include-types is now deprecated but continues to work, consistent with our compability guarantee.
  • Include type references in google.protobuf.Any messages in option values when filtering on type, e.g. with buf build --type or buf generate --type.
  • Allow specifying a specific protoc path in buf.gen.yaml when using protoc's built-in plugins via the new protoc_path option.
  • Allow specifying arguments for local plugins in buf.gen.yaml. You can now do e.g. path: ["go, "run", ./cmd/protoc-gen-foo] in addition to path: protoc-gen-foo.
  • Add optional name parameter to buf mod init, e.g. buf mod init buf.build/owner/foobar.
  • Fix issue with php_metadata_namespace file option in managed mode.
  • Make all help documentation much clearer. If you notice any inconsistencies, let us know.
buf - v1.10.0

Published by elliotmjackson almost 2 years ago

  • When using managed mode, setting enabled: false now no longer fails buf generate and instead prints a warning log and ignores managed mode options.
  • Add csharp_namespace option to managed mode, allowing except, which excludes modules from managed mode, and override, which specifies csharp_namespace values per module, overriding the default value. By default, when managed mode is enabled, csharp_namespace is set to the package name with each package sub-name capitalized.
  • Promote buf convert to stable, keep buf beta convert aliased in the beta command.
  • Add Types filter to buf generate command to specify types (message, enum, service) that should be included in the image. When specified, the resulting image will only include descriptors to describe the requested types.
buf - v1.9.0

Published by jhump about 2 years ago

  • New compiler that is faster and uses less memory than the outgoing one.
    • When generating source code info, the new compiler is 20% faster, and allocates 13% less memory.
    • If not generating source code info, the new compiler is 50% faster and allocates 35% less memory.
    • In addition to allocating less memory through the course of a compilation, the new compiler releases some memory much earlier, allowing it to be garbage collected much sooner. This means that by the end of a very large compilation process, less than half as much memory is live/pinned to the heap, decreasing overall memory pressure.
  • The new compiler also addresses a few bugs where Buf would accept proto sources that protoc would reject:
    • In proto3 files, field and enum names undergo a validation that they are sufficiently different so that there will be no conflicts in JSON names.
    • Fully-qualified names of elements (like a message, enum, or service) may not conflict with package names.
    • A oneof or extend block may not contain empty statements.
    • Package names may not be >= 512 characters in length or contain > 100 dots.
    • Nesting depth of messages may not be > 32.
    • Field types and method input/output types may not refer to synthetic map entry messages.
  • Push lint and breaking configuration to the registry.
  • Include LICENSE file in the module on buf push.
  • Formatter better edits/preserves whitespace around inline comments.
  • Formatter correctly indents multi-line block (C-style) comments.
  • Formatter now indents trailing comments at the end of an indented block body (including contents of message and array literals and elements in compact options) the same as the rest of the body (instead of out one level, like the closing punctuation).
  • Formatter uses a compact, single-line representation for array and message literals in option values that are sufficiently simple (single scalar element or field).
  • buf beta convert flags have changed from --input to --from and --output/-o to --to
  • Fully qualified type names now must be passed to the input argument and --type flag separately
buf - v1.8.0

Published by njhale about 2 years ago

  • Change default for --origin flag of buf beta studio-agent to https://studio.buf.build
  • Change default for --timeout flag of buf beta studio-agent to 0 (no timeout). Before it was 2m (the default for all the other buf commands).
  • Add support for experimental code generation with the plugin: key in buf.gen.yaml.
  • Preserve single quotes with buf format.
  • Support junit format errors with --error-format.
buf - v1.7.0

Published by doriable about 2 years ago

  • Support protocol and encoding client options based on content-type in Studio Agent.
  • Add --draft flag to buf push.
  • Add buf beta registry draft {list,delete} commands.
buf - v1.6.0

Published by doriable over 2 years ago

  • Fix issue where // buf:lint:ignore comment ignores did not work for the ENUM_FIRST_VALUE_ZERO rule.
  • Add buf beta studio-agent command to support the upcoming Buf Studio.
buf - v1.5.0

Published by doriable over 2 years ago

  • Upgrade to protoc 3.20.1 support.
  • Fix an issue where buf would fail if two or more roots contained a file with the same name, but with different file types (i.e. a regular file vs. a directory).
  • Fix check for PACKAGE_SERVICE_NO_DELETE to detect deleted services.
  • Remove buf beta registry track.
  • Remove buf beta registry branch.
buf - v1.4.0

Published by doriable over 2 years ago

  • Fix issue where duplicate synthetic oneofs (such as with proto3 maps or optional fields) did not result in a properly formed error.
  • Add buf beta registry repository update command which supports updating repository visibility (public vs private). As with all beta commands, this is likely to change in the future.
buf - v1.3.1

Published by amckinney over 2 years ago

  • Allow --config flag to be set when targeting a module within a workspace.
  • Update buf format's file option order so that default file options are sorted before custom options.
  • Update buf format to write adjacent string literals across multiple lines.
  • Fix buf format so that the output directory (if any) is created if and only if the input is successfully formatted.
buf - v1.3.0

Published by doriable over 2 years ago

  • Add --exit code flag to buf format to exit with a non-zero exit code if the files were not already formatted.
buf - v1.2.1

Published by amckinney over 2 years ago

  • Fix a few buf format edge cases.
buf - v1.2.0

Published by amckinney over 2 years ago

  • Add buf format command to format .proto files.
  • Fix build scripts to avoid using the command-line-arguments pseudo-package when building binaries and re-introduce checking for proper usage of private packages.
buf - v1.1.1

Published by doriable over 2 years ago

  • Remove check for proper usage of private packages due to a breaking change made in the Golang standard library in 1.18.
buf - v1.1.0

Published by doriable over 2 years ago

  • Add --type flag to the build command to create filtered images containing only the specified types and their required dependencies.
  • Trim spaces and new lines from user-supplied token for buf registry login.
  • Add support for conversion between JSON and binary serialized message for buf beta convert.
buf - v1.0.0

Published by doriable over 2 years ago

  • Check that the user provided a valid token when running buf registry login.
  • Add buf mod open that opens a module's homepage in a browser.
  • Add buf completion command to generate auto-completion scripts in commonly used shells.
  • Add --disable-symlinks flag to the breaking, build, export, generate, lint, ls-files, push commands. By default, the CLI will follow symlinks except on Windows, and this disables following symlinks.
  • Add --include-wkt flag to buf generate. When this flag is specified alongside --include-imports, this will result in the Well-Known Types being generated as well. Most language runtimes have the Well-Known Types included as part of the core library, making generating the Well-Known Types separately undesirable.
  • Remove buf protoc. This was a pre-v1.0 demonstration to show that buf compilation produces equivalent results to mainline protoc, however buf is working on building a better Protobuf future that provides easier mechanics than our former protoc-based world. buf protoc itself added no benefit over mainline protoc beyond being considerably faster and allowing parallel compilation. If protoc is required, move back to mainline protoc until you can upgrade to buf. See #915 for more details.
  • Context modifier no longer overrides an existing token on the context. This allows buf registry login to properly check the user provided token without the token being overriden by the CLI interceptor.
  • Removed the buf config init command in favor of buf mod init.
  • Removed the buf config ls-breaking-rules command in favor of buf mod ls-breaking-rules.
  • Removed the buf config ls-lint-rules command in favor of buf mod ls-lint-rules.
  • Removed the buf config migrate-v1beta1 command in favor of buf beta migrate-v1beta1.
  • Add buf beta decode command to decode message with provided image source and message type.
  • Disable --config flag for workspaces.
  • Move default config version from v1beta1 to v1.
buf - v1.0.0-rc12

Published by doriable over 2 years ago

  • Add default, except and override to java_package_prefix.
  • Add dependency commits as a part of the b3 digest.
  • Upgrade to protoc 3.19.4 support.
  • Remove branch field from buf.lock.
buf - v1.0.0-rc11

Published by bufdev almost 3 years ago

  • Upgrade to protoc 3.19.3 support.
  • Add PACKAGE_NO_IMPORT_CYCLE lint rule to detect package import cycles.
  • Add buf beta registry {plugin,template} {deprecate,undeprecate}.
  • Add warning when using enterprise dependencies without specifying a enterprise remote in the module's identity.
  • Remove digest, and created_at fields from the buf.lock. This will temporarily create a new commit when pushing the same contents to an existing repository, since the ModulePin has been reduced down.
  • Add manpages for buf.
buf - v1.0.0-rc10

Published by doriable almost 3 years ago

  • Fix issue where remote references were not correctly cached.Fix issue where remote references were not correctly cached.