On Fri, Mar 4, 2022 at 3:47 AM Jack Klamer <[email protected]> wrote:
> I was not aware of it! I'll take a look and try to understand it better. > I'll rebase and start working on the suitable PR version. I may need help > trying to understand the release crate configuration to get the desired > behavior (importing as a feature), but will be able to finish most of the > Here is an example how to add it: https://github.com/apache/avro/pull/1579 > work before getting that sorted, (plus it could be done after initial merge > and beta testing) . Thank you again for already refactoring the crate into > a workspace. > > Best, > Jack > > > > > On Thu, Mar 3, 2022 at 1:15 AM Martin Grigorov <[email protected]> > wrote: > > > Hi Jack, > > > > On Thu, Mar 3, 2022 at 3:11 AM Jack Klamer <[email protected]> wrote: > > > > > Hello Avro Devs, > > > > > > My name is Jack and I used Java Avro a lot in my career and really > > enjoyed > > > the "Avro way". I started to program in rust and started to use the > Avro > > > library for rust as well. I have been working on a feature for myself > > that > > > > > > > Welcome to Avro community! > > And thank you for offering your help for the Rust SDK! > > > > I believe has reached the POC/beta stage. I would love to get it into the > > > open source but it will need more polishing and documentation, and want > > to > > > make sure I propose it here to get alignment/have discussions for > certain > > > aspects. > > > > > > > The proposal: > > > - Have another rust crate that is importable as a feature on the main > > crate > > > (in the same manner as serde derive), that will provide a derive > > proc_macro > > > that implements a simple trait that returns the schema for the > > implementing > > > type. Right now, schemas must be parsed from strings ( or read from > files > > > first), and closely coordinated with the associated struct. This makes > > > sense for workflows that need to associate the same type across > > languages. > > > For programs that are all within Rust, there are usability advantages > of > > > the proc_macro. > > > > > > To see the POC in action please review: > > > > > > > > > https://github.com/jklamer/avro/blob/feature/DeriveSchema/lang/rust/avro_derive/tests/derive.rs > > > > > > And for slightly more details on thoughts: > > > > > > > > > https://github.com/jklamer/avro/blob/feature/DeriveSchema/lang/rust/avro_derive/proposal_supporting_docs.md > > > > > > This looks cool! > > Are you aware of > > https://github.com/MaterializeInc/materialize/tree/main/src/avro-derive > ? > > It is Apache 2.0 licenced so we may take inspiration from it. Too bad it > > does not have a single test case and documentation. > > > > I will restructure lang/rust to a Rust workspace as you did to prepare it > > for more modules, like avro_derive and maybe rsgen-avro ( > > https://github.com/lerouxrgd/rsgen-avro)! > > > > > > > > > > > > > > > Best, > > > Jack > > > > > >
