I finally went ahead and merged the Avro rust PR that imports the code
from `avro-rs` and adapts it into the project structure of Apache
Avro.

There are some minor clean-ups to do, I filled an issue for this
https://issues.apache.org/jira/browse/AVRO-3157 and I expect to work
on the following days integrating the Avro implementation fully into
the build/release process (the Avro dev docker image). So hopefully we
might end up having an early experimental release included in the next
Avro version (1.11.0).

We still need to migrate important pending issues from the Yelp
`avro-rs` repository. So any help to migrate those would be
appreciated.

Now the action starts :D

We had a discussion with other parties (in CC) about new features and
improvements, in particular about bringing those existing in the
Materialize `avro-rs` fork.
https://github.com/MaterializeInc/materialize/tree/main/src/avro

- Better support for Schemas
- Serde inspired API (with mostly allocation-free decoding)

Apart of the availability of people to do this, the main issue is the
discussion around backwards compatiblity *or not* for previous users
of `avro-rs`.

Having backwards compatibility is interesting to encourage users to
migrate to the Apache Avro's rust version, but it is also a hard
compromise that can make difficult to integrate the features on the
Materialize fork so we have to decide what is the best way to proceed,
maybe keep compatiblity for one or two releases and cautiously evolve
it from there.

Anyway now is the time to discuss all Avro Rust stuff here publicly
and keep the work coming.

I want to thank everyone making this happen in particular Antonio and
Flavien for all the work in the original implementation as well as for
all the dedication to get the legal aspects of the donation done) !

Reply via email to