github bufbuild/buf v1.9.0

latest releases: v1.42.0, v1.41.0, v1.40.1...
23 months 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

Don't miss a new buf release

NewReleases is sending notifications on new releases.