protox v1.5.0 Release Notes

    • Allow multiple import paths (thanks to https://github.com/cheng81)

      • 1.4.0
    • Add support of proto3 optional fields (thanks to https://github.com/sneako)

      • 1.3.2
    • Bump version to build doc using ex_doc 0.24

      • 1.3.1
    • Fix table of types mapping in documentation

      • 1.3.0
    • Allow namespaces through protox.generate (thanks to https://github.com/sdrew)

    • Expand output path when generating files

    • More thorough testing of code generation

      • 1.2.4
    • Fix warning when compiling generated code (thanks to https://github.com/xinz)

    • Format generated code

    • Fix warning about unused variable in generated code when encoding an empty protobuf message

      • 1.2.3
    • Update documentation to better explain the package directive usage

      • 1.2.2
    • Enable listing of task protox.generate via mix help.

      • 1.2.1
    • Add --keep-unknown-fields option to configure support of unknown fields when generating files

      • 1.2.0
    • Add keep_unknown_fields option to configure support of unknown fields

      • 1.1.1
    • Fix documentation links

      • 1.1.0
    • Add ability to generate one file per protobuf message to speed up compilation (thanks to https://github.com/qgau)

      • 1.0.0
    • Use Protox exceptions as errors codes

      • 0.25.0
    • Add mix task to generate files

    • Bump to Elixir 1.7 as minimal supported version

      • 0.24.0
    • Usage of @external_resource is no longer necessary

      • 0.23.1
    • Fix parse of [packed=false] option (the serialization was still correct, but not in compliance with Protobuf conformance checker recommandations)

      • 0.23.0
    • [Breaking change] encode/1 returns a tuple, use encode!/1 to get the old behavior of encode/1

    • Raise RequiredFieldsError when encoding or decoding a Protobuf 2 message with unset required fields (that is, that have the value nil)

    • Raise IllegalTagError when decoding a message with a tag set to 0

    • +40% speedup & -30% memory consumption when decoding thanks to macros

    • Fix missing encoding of unknown fields when a message hadn't any field

      • 0.22.0
    • O(1) encoding of oneof fields

      • 0.21.0
    • Move back to ahamez/protox

    • Bump to Elixir 1.6 as minimal supported version

    • Add benchmarks

    • Add conformance tests to CI

    • Add dialyzer to CI

      • 0.20.0
    • Pass all tests of protobuf 3.12 conformance suite tests

    • (proto2) Always serialize required fields

    • Add defs_by_name/0 in generated modules for messages

    • Add syntax/0 in generated modules for messages

    • Add Protox.MergeMessage.merge/2 to merge two messages of the same type

    • [Breaking change] (proto2) use nil for unset fields

    • [Breaking change] rename generated get_required_fields/0 into required_fields/0

    • [Breaking change] rename generated get_unknown_fields/0 into unknown_fields/0

    • [Breaking change] rename generated get_unknown_fields_name/0 into unknown_fields_name/0

      • 0.19.1
    • Fix warning about duplicate keys (thanks to https://github.com/ananthakumaran)

      • 0.19.0
    • CamelCase for all generated modules (fixes https://github.com/ahamez/protox/issues/3)

      • 0.18.0
    • Allow ability to construct file names at compile time (thanks to https://github.com/ananthakumaran)

      • 0.17.0
    • Add path: option to specify import path (thanks to https://github.com/mathsaey)

      • 0.16.2
    • Fix generation of typespecs for when there are more than one required field

      • 0.16.1
    • Change base name for unknown fields from 'unknown_fields' to 'uf'

      • 0.16.0
    • Fix handling of +/-infinity and NaN when encoding/decoding floats

    • Move RandomInit to tests

      • 0.15.2
    • Fix typespecs for enum constants accessors

      • 0.15.1
    • Fix typespecs for unknown and required fields accessors

      • 0.15.0
    • Use 0.0 as default value for floats and doubles

      • 0.14.0
    • Development now takes place at https://github.com/EasyMile/protox

    • Move conformance test escript to https://github.com/EasyMile/protox-conformance

    • Remove benchmarks escripts

      • 0.13.0
    • Typespecs for generated encoder

    • Bring Varint into Protox

    • Fix decoding of booleans encoded with a varint which is not 0 or 1

      • 0.12.1
    • Fix handling of unset members in map entries

      • 0.12.0
    • ~2x speed improvement when encoding

      • 0.11.1
    • It's now possible to clear unknown fields

      • 0.11.0
    • Encode unknown fields

      • 0.10.0
    • Update deps (dialyxir, excoveralls, hackney)

      • 0.9.0
    • Keep unknown fields when decoding

      • 0.8.0
    • Raise an error when decoding and when required fields are missing

      • 0.7.1
    • Fix encoding of varint to match C++ version

    • Fix encoding of enums to match C++ version

      • 0.7.0
    • Read definitions from files or binaries

    • Parse definitions with protoc

    • Generate Elixir structs from parsed definition

    • Can prepend namespaces

    • Encode/decode protobuf messages