- Merge messages when receiving multiple messages for the same field (#57)
- Optimize serialization and deserialization (#55)
- Fix upper case handling in name mangling and apply name mangling for serivce records (#54) (thanks @crackcomm)
- Fix bug in name resolution leading to uncompilable code (#53)
- Add more fields in generated service structs to make it easier to extract service endpoint names for gRPC (#50)
- Remove buckescript packaging support (#45)
- Emit modules for service endpoints with request/reply and gRPC endpoint name (thanks @Nymphium)
- Support importing from proto files with
-
in their name.
- Fix serialization/deserialization on big endian architectures
- Update tests for proto3 optional fields
- Remove dependency on dune-configurator
- Use pkg-config to locate google well known types (thanks @vprevosto)
- Support proto3 optional fields
- Map proto3 optional fields into option types
- Do not serialize field values when the same as the default attribute.
- Fix bug when uint32/64 where values are converted to negative integers if high bit is set.
- Fix bug which prevented specification of multiple opens (thanks @rauanmayemir)
- Fix bug with Proto2 default integer arguments for Int32 and Int64 types
- Add function to construct messages with default values
- Add missing includes for google well known types
- Move userdefined opens to beginning of autogenerated files, to allow using new google types
- [*] Wrap google types (protofiles using googles well known types
will need to add
open=Google_types
to the list of compilation options - Disable warning 33 (unused opens) for user provided opens
- Add custom option to mangle names (modules, fields and enums) to more Ocaml idiomatic names (snake_cased)
- Change type of deserialize error type to be an lower bound polymorphic variant
- Rewrite type mapping to ensure that no name clashes can exist.
- Fix bug in nested cursive types referencing wrong types
- Add custom options, so options to ocaml_protoc_plugin can be embedded in .proto files
- Support extensions
- Allow use of message name Ocaml_protoc_plugin
-
*
Do not treat oneof fields as required, adding a `not_set variant to all oneofs. - Avoid name clash with imported .proto files
- Avoid eager evaluation of members of recursivbe modules to fix bug triggered in bucklescript - @wokalski
- Add examples
- *Oneofs with only one element should not be a variant type
- Add test when including proto files which defines the same package
- Add google well know types (library
ocaml-protoc-plugin.google_types
). - *Move module to ocaml-protoc-plugin
- Optimize deserialization of large nested structures
- Provide pretty_printers aka deriving_show for
Result.error
andField.t
- Fix stack overflow when deserializing big nested structures
- *Add option to not wrap single field type in records
- Refactor type emitter to closely follow spec
- Support enum aliasing
- Avoid name clash with on 'name'
- Fix code generation when argument contains a path
- Refactor internal types to make serialization and deserialization type spec symmetrical.
- Optimize deserialization for messages with max_id < 1024
- Dont depend on Base in runtime
- Slim runtime dependencies: Remove need for base, ocplib-endian and ppx_let
- Honour [packed=...] flag.
- Make fixed scalar types default to int32 and int64
- Support proto2 specification
- Add options to switch between int64|int32 and int
- Fix name clash problem with special enum names
- Refactor serializaton and deserialization to simplify emitted code
- Eagerly evaluate serialization (for speed).
- Initial Release