Skip to content

Latest commit

 

History

History
112 lines (94 loc) · 4.94 KB

CHANGELOG.md

File metadata and controls

112 lines (94 loc) · 4.94 KB

Unreleased

... everything has been released!

0.0.17

Nov 20, 2024

  • Add read-only support for proto2 extension fields (#163, #170)
  • Remove Python dependency by rewriting pb-jelly-gen in Rust (#164)
  • Make pb-jelly-gen Rust API optional (#166)
    • This is a breaking change: if you were using pb-jelly-gen as a library, turn on the generate feature flag
  • Remove serde impls for Fixed/Signed types (#168)
  • Various optimizations around the generated code (#173, #175)

0.0.16

Jan 18, 2024

  • Replace ctype=CORD with rust.blob extension field (#160)

0.0.15

Dec 14, 2023

  • Improve handling of recursive types (#157)
    • In particular, recursive types now implement Eq/Hash/etc. if possible.
  • Reduce the amount of generated code (#158)

0.0.14

Oct 27, 2023

  • Implement box_it for oneof fields (#150)
  • Use r# syntax for keywords instead of appending _ (#153)
    • This is a breaking change. Fields with names like type used to be generated as type_. Now, you should refer to them using a raw identifier: r#type.

0.0.13

Oct 12, 2023

  • Add rustdoc:: prefix to #[allow(broken_intra_doc_links)] (#148)

0.0.12

May 9, 2023

  • Add a (rust.sso) option to opt into using compact_str for strings (#141)
  • Support optional fields in proto3 (#143)
  • Optimize varint encoding (#144)
  • Pass through UTF-8 decode errors when deserializing strings

0.0.11

December 15, 2021

  • Avoid unnecessary return statements in some generated code. (#136)
  • Avoid extra logic for oneofs with only 1 possible value. (#133)

0.0.10

November 30, 2021

  • Simplify the zerocopy implementation. (#127)
    • PbBuffer has been reworked to untie it from PbBufferReader.
      • copy_from_reader replaces from_reader and allows a PbBuffer to be constructed, by copying, from any Buf. Implementations can still opt out by returning Err.
      • copy_to_writer replaces into_reader. Callers that were using into_reader to call Message::deserialize should instead construct their desired PbBufferReader directly (e.g. Cursor<Bytes>).
    • PbBufferReader::as_buffer is renamed to read_buffer, and provided implementations fall back to copying Lazy fields by default (instead of returning an error).
  • Implement basic support for the field reflection API. (#121)
    • MessageDescriptor has been reworked to be a struct rather than a trait, and is returned from Message::descriptor rather than implemented on a Message.
      • MessageDescriptor has been augmented to return information about the fields and oneofs in the Message.
    • A Reflection trait has been added to provide more dynamic access to proto fields.
      • This is automatically generated by pb-jelly-gen for all generated protos, but any manually implemented Message that is used in a generated Message will also need to manually implement Reflection.
      • Example usage can be seen in pb-test/src/pbtest.rs in all_fields_reflection3.

0.0.9

November 2, 2021

  • Simplify Option -> &str conversion in pb-jelly-gen (clippy warning)

0.0.8

October 25, 2021

  • Move (gogoproto.nullable) option to (rust.nullable_field), removing the dependency on gogoproto
  • Support running with any version of protoc (by dynamically generating extensions_pb2.py in a venv)
  • Use github CI for tests, rustfmt, black, mypy --strict
  • Support windows for codegen
  • Rename master branch to main
  • Use a setup.cfg to install protoc-gen-rust to avoid need for --plugin flag. Simplifies manual usage process, especially on windows (no need for codegen.bat)
  • Remove need for requirements.txt - by using setup.cfg install_requires

0.0.7

May 5, 2021

  • Add (rust.closed_enum) option to only generate closed enums

0.0.6

April 25, 2021

  • Bump bytes to 1.0
  • Bump byteorder to 1.4

0.0.5

November 20, 2020

  • Add Windows support to pb-jelly-gen
  • Add Windows support to our CI
  • Allows proto files at the root of proto path

Bugs

  • Fixed a bug around non-optional boxed messages

0.0.4

October 21, 2020

  • Drop python2 support (remove six and inline type annotations)
  • Only generate crate level attributes in lib.rs (vs every module)
  • Better error message if python-protobuf version is too low for codegen plugin
  • Bump protobuf in requirements to 3.13.0
    • Requires upgrading to protobuf 3.13.0

Bugs

  • Fixed issue where sometimes in codegen field type was incorrect when using err_if_default_or_unknown

0.0.3

September 21, 2020

  • Forgot to bump the version of pb-jelly that the codegen script uses

v0.0.2

September 19, 2020

  • Use the license field instead of the license-file field in the Cargo.toml of pb-jelly and pb-jelly-gen.
    • Note: The License is still the same, the update is purely for better metadata from crates.io
  • Warn on rust_2018_idioms closes #45
  • A few changes related solely to re-integrating pb-jelly into the Dropbox codebase.