Skip to content

Releases: andersfugmann/ocaml-protoc-plugin

6.1.0

26 Apr 09:33
Compare
Choose a tag to compare

CHANGES:

  • Fix name resolution leading to wrongly mapped named
  • Fix codegen bug causing the plugin to reject valid protobuf
  • Add preliminary support for melange though disabling eager
    evaluation of serialize and deserialize functions when not using
    native or bytecode backends
  • Fix missing cflags when compiling test c stub
  • Make Map tests compatible with older versions of protoc
  • Fix negative integer test failues due to a bug in older versions of protobuf (google) c lib

6.0.0

13 Apr 15:29
Compare
Choose a tag to compare

CHANGES:

New features

  • Implement json serialization and deserialization (#5)
  • Support special json mapping for google types (#9)
  • Add deprecation annotations for deprecated fields, services etc (#8)
  • Add option to prefix generated files with their package name
  • Copy documentation from proto files into generated ocaml bindings

Bug fixes

  • Fix file output name if files contains a '-'
  • Resolve bug for Request/Response module aliases leading to
    generating uncompilable code. (#21)
  • Fix codegen bug for messages with out fields and setting
    singleton_records = true (#20)
  • In Services, the package field is now correctly set to None if
    the service if not defined in a package scope (#24)

Misc changes

  • Unify serialization and deserialization spec and optimize oneof
    handling
  • Simplify types used in code generation to improve readaility
  • *Replace val name': unit -> string with val name: unit -> string which will only return the full protobuf name
  • Optimize merge functions by applying eager evaluation
  • Change signature of to_proto' to return unit and not a writer

(* indicates breaking change)

Notes

Message.name': unit -> string has been renamed to Message.name: unit -> string, and is now contains the fully qualified protobuf
message name. Before the name was the ocaml module name of the
message.

Service.Message signature has been deprecated and replaced with
Spec.Message signature. Service.Message is now an alias for
Spec.Message and will be removed in future releases.

5.0.0

24 Feb 17:17
Compare
Choose a tag to compare

CHANGES:

  • Fix service signature to be backward compatible
  • Create detatched fork for active development of
    ocaml-protoc-plugin. Thanks to @issuu for supporting initial
    development!
  • Merge messages when receiving multiple messages for the same
    (single) field per protobuf spec.
  • Add multiple buffer allocation strategies when serializing data
  • Sort fields in output as recommended in protobuf spec and
    implement fast deserialization when all fields are sorted.
  • Optimize serialization and deserialization resulting in ~5x
    speed improvments and is now on par with ocaml-protoc.
  • Improve handling of extensions and remove unused extensions
    argument for messages that do not carry extensions (Breaking change)
  • Add benchmarks based on bechamel for optimization and comparing
    performance against ocaml-protoc
  • Fix upper case handling in name mangling and apply name mangling
    for serivce records (thanks @crackcomm)
  • Fix bug in name resolution leading to uncompilable code