Skip to content

Releases: ahamez/protox

v2.0.1

18 Mar 16:39
v2.0.1
efc12ad
Compare
Choose a tag to compare

2.0.1

Fixed

  • Correct declaration of benchee dependency which is required at runtime

v2.0.0

15 Mar 16:14
v2.0.0
b7eeb38
Compare
Choose a tag to compare

2.0.0

Added

  • schema/0 to access the underlying definition of a message.

Changed

  • Minimal supported Elixir version is now 1.15.
  • BREAKING CHANGE: encoding functions now return the size alongside iodata.
    Previously, one had to use :binary.list_to_bin/1 to flatten the iodata and then use byte_size, defeating the purpose of having an iodata. Furthermore, it provides a significant performance boost.
  • BREAKING CHANGE: Protox.decode! and Protox.decode no longer raise or return an error if a message don't have all required fields set. We should let the user decide whether it's a problem.
  • BREAKING CHANGE: Rename InvalidFieldAttribute to InvalidFieldAttributeError for consistency.

Removed

  • BREAKING CHANGE: Drop support of JSON encoding and decoding.
    The implementation was half-baked, it's preferable to have the library focused. Even Google doesn't recommend using JSON: "In short, there are many good reasons why Google prefers to use the standard wire format for virtually everything rather than ProtoJSON format".
  • BREAKING CHANGE: Remove :path option in favor of the already existing :paths option, which covers the same functionality.
  • BREAKING CHANGE: Remove :keep_unknown_fields option (the corresponding --keep-unknown-fields option for the mix task protox.generate is also removed). They are now always kept.
    It added complexity to the generation logic while not providing any value as one can simply ignore those fields and as it's mandatory to parse them correctly.
  • BREAKING CHANGE: Remove generated defs/0 (functionality remains available through schema/0).
  • BREAKING CHANGE: Remove generated field_def/1 (functionality remains available through schema/0).
  • BREAKING CHANGE: Remove generated file_options/0 (functionality remains available through schema/0).
  • BREAKING CHANGE: Remove generated required_fields/0 (functionality remains available through schema/0).
  • BREAKING CHANGE: Remove generated syntax/0 (functionality remains available through schema/0).
  • BREAKING CHANGE: Remove generated encode/1 from strings for enums.
  • BREAKING CHANGE: Remove Protox.Encode.encode/1 and Protox.Encode.encode!/1 (functionality remains available in generated modules and in Protox).

v1.7.8

15 Nov 15:24
v1.7.8
4de405e
Compare
Choose a tag to compare

What's Changed

  • Fix warnings of unknown JSON modules when a JSON library is not installed

Full Changelog: v1.7.7...v1.7.8

v1.7.7

02 Nov 10:06
v1.7.7
ca2b1b2
Compare
Choose a tag to compare

What's Changed

  • Fix launch by removing :propcheck from extra applications

Full Changelog: v1.7.6...v1.7.7

v1.7.6

01 Nov 08:20
v1.7.6
3d2d3ba
Compare
Choose a tag to compare

What's Changed

  • fix: correct the return type for json_decode! by @squirmy in #200

New Contributors

Full Changelog: v1.7.5...v1.7.6

v1.7.5

27 Sep 16:22
v1.7.5
236a11d
Compare
Choose a tag to compare
  • Use origin repository for propchek rather than a fork

v1.7.4

27 Sep 13:16
v1.7.4
72be259
Compare
Choose a tag to compare
  • Fix handling of enum in snake case

1.7.2

19 Nov 20:18
1.7.2
4a9ba78
Compare
Choose a tag to compare

1.7.1

16 Oct 12:20
1.7.1
5fcf368
Compare
Choose a tag to compare
  • Fix decoding and encoding of proto3 optional fields

1.7.0

18 Aug 07:45
1.7.0
9ba1d0d
Compare
Choose a tag to compare
  • Add support of FileOptions (which can be access with Msg.file_options/0)