Releases: andersfugmann/ocaml-protoc-plugin
Releases · andersfugmann/ocaml-protoc-plugin
6.1.0
CHANGES:
- Fix name resolution leading to wrongly mapped names
- 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
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
withval 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
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