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
> > >
> >
>

Reply via email to