Replies: 4 comments 12 replies
-
When I first started out using this lib it was also around the time I started using avro with Go. The error messages when decoding OR encoding fail aren't very user friendly for new comers, if the structs are big. After you get the hang of it they become okish, but improvements could be made - I personally love error messages like Elm (the language), but I understand if that's considered too much work for this library. Another thing would be the fact that unknown fields are ignored during the Nevertheless, this lib feels pretty awesome when compared to other's we tried when we were choosing one. Great work overall! |
Beta Was this translation helpful? Give feedback.
-
Continuing here the discussion around generating structs started here #96 : Regarding multi purpose structures and tags that are already there: if the struct is generated I'd think its OK to configure the generator to generate tags for anything. Example configuration interface (first thing that came to mind): structs:
A:
annotations:
- name: avro
style: camel_case
- name: json
style: snake_case
ignore_private_fields: true This way everytime the struct is generated the annotations are generated as well. In my mind this is fine because annotations are just key value pairs, they're not avro specific nor json specific, its just metadata. When I use code generation the principle I follow is: if its generated, only the machine changes it. Therefore multi purpose structs would have everything generated, avro tags and other tags as well. |
Beta Was this translation helpful? Give feedback.
-
An addition to Marshall() could be an MarshallZeroCopy where a "large enough" byte buffer is provided. func (c *frozenConfig) MarshalZeroCopy(schema Schema, v interface{},[]destination) ([]byte, error) I will fork and try this out , se if gives a 1% or something on my current numbers (That are fantastic already due Hamba Avro!) for my https://github.com/Ignalina/shredder Troughput bytes/s total : 761.41MB /s |
Beta Was this translation helpful? Give feedback.
-
I think I will release V2 after the inclusion of the struct generator. The composed reader schemas is too complex for the time I have available at the moment. I also think Recursive Structs can wait till post v2 release, but still in v2. |
Beta Was this translation helpful? Give feedback.
-
There are some breaking changes needed in the library, and this is a good time to think about the list of features for v2. Here are some of the ideas I would like to tackle for this release:
Support Composed Reader Schemas as a first step to Avro RPC.(Too complex, address for v3).avro.Writer
as encoder writer.Other ideas are welcome.
Contributed Ideas:
Beta Was this translation helpful? Give feedback.
All reactions