[WIP] Initial support for the Avro "protocol" keyword#56
[WIP] Initial support for the Avro "protocol" keyword#56zeidoo wants to merge 2 commits intolerouxrgd:masterfrom
Conversation
|
Hello, Thank you for bringing the However I feel that the |
|
I do agree that the protocol struct should be in the Avro module, but it's not. The commented out fields in the protocol file of this PR are kinda the skeleton of what it should look like. I put the struct in this project to get things rolling, with the hopes that it gets migrated in the Avro module eventually. |
|
Another user of apache-avro works on that - https://github.com/woile/avdl-rs The main problem of Apache Avro is that all SDKs need to be released together. And because of this there are 1 or at most 2 releases per year. I proposed once to make it possible to release just a single SDK but there are not many active maintainers of most of the other SDKs. |
|
@woile You might be interested in this PR/discussion. |
|
I'm not really sure what the conclusions of this discussion are. Is https://github.com/woile/avdl-rs another lib to generate Rust code from Avro, or is it prototyping in the hopes of merging with the office Apache Avro project? Should this repo take care of the Avro protocol or redirect that task to @woile's repo? |
|
I would be more than happy to merge avdl-rs into the avro package if that's what's wanted, but I haven't had any conversations yet. Contributions to the avdl-rs are more than welcome. I'm now stuck fixing the imports. If you want to try it, download the |
|
About the "merge to Apache Avro" part: I think it would be great if both rsgen-avro and avdl-rs are sub-projects of Apache Avro SDK one day! The biggest downside of moving the projects to Apache is the long time between releases (explained at #56 (comment)). But if there are more co-maintainers we can push harder for releasing a single SDK, i.e. just the Rust SDK. |
|
Apache Avro Rust SDK has been extracted to https://github.com/apache/avro-rs ! |
|
Another IDL impl in the wild: https://github.com/kvedes/avro-idl |
Some folks prefer working with Avro IDL instead of JSON, then convert the IDL to JSON schemas using the avro-tools jar, or a Maven/Gradle plugins. Like this:
This PR grabs the "types" json element from the generated "protocol" avsc file and uses that instead of using the whole contents of the file as it's the case for "schema" avsc files. Everything else remains the same during generation.
Notes: