On Fri, Feb 18, 2022 at 5:00 AM Askar Safin <safinas...@mail.ru> wrote:

> > By the way, we have what we believe to be the most correct and complete
> Rust
> > implementation of Avro here:
> > https://github.com/MaterializeInc/materialize/tree/main/src/avro
> Hi. I spent a lot of time searching for perfect Avro implementation for
> Rust. And indeed Materialize implementation turned to be the best as I
> think.
> Still, I rejected it because "avro_derive" doesn't work for Rust enums
> (with data). I. e. I wanted Rust enums to be converted to Avro
> unions. I rejected other Rust implementations for various reasons, too. So
> I wrote my own. (I can show code, but note that my implementation is
> incomplete.) Now (because of various Avro problems) I think I will throw
> away this code and simply will create my own binary format instead.
>
> I indeed suggest Avro project to base its Rust implementation on
> Materialize's code, not on "avro-rs" from https://crates.io/crates/avro-rs
>  .
> "avro-rs" doesn't even support recursive types. And adding recursive types
> support will require major rewrite. There is pull request on
> their github for recursive types, but it's still unmerged
>

I hate being the party spoiler but:
- https://github.com/flavray/avro-rs/pull/99#issuecomment-1017195592
- https://github.com/apache/avro/pull/1456/files

TL;DR - apache-avro (this is the new crate name) does support recursive
types!



>
>
> ==
> Askar Safin
> http://safinaskar.com
> https://sr.ht/~safinaskar
> https://github.com/safinaskar
>

Reply via email to