alamb opened a new pull request, #8133:
URL: https://github.com/apache/arrow-rs/pull/8133

   # Which issue does this PR close?
   
   - Closes https://github.com/apache/arrow-rs/issues/8132
   - Part of https://github.com/apache/arrow-rs/issues/8084
   - Follow on to https://github.com/apache/arrow-rs/pull/8104
   
   # Rationale for this change
   
   
   One of the goals of adding `Variant` support to the parquet crate is to not
   requiring users to compile and bloat their binary size unless they want this
   functionality. This means that we have added all actual code and 
functionality
   in different crates: `parquet_variant`, `parquet_variant_compute`, etc.
   
   However at the moment, users who want to use the `Variant` functionality 
need to
   add the `parquet_variant` crate to their `Cargo.toml`. This has several 
downsides:
   
   1. It will be more complicated to use the `Variant` functionality for users
   
   2. There is no way to provide end to end examples of reading and writing 
`Variant` data in either
      the `parquet` or `parquet_variant` crates
   
   3. The end to end tests for reading parquet files with `Variant` data need 
to add both
      the `parquet` and `parquet_variant` crates to their `Cargo.toml`
   
   Thus, I propose we add a `variant` feature to the `parquet` crate that
   re-exports the `parquet_variant` and `parquet_variant_compute` crates. This 
way
   users can add the `parquet` crate with the `variant` feature to their
   `Cargo.toml` and get all the functionality.
   
   This is similar to the `arrow` feature in the `parquet` crate that enables 
arrow
   functionality for those users who want it but does not require all users to
   depend on the `arrow` crate.
   
   
   An alternate strategy would be to require users to explicitly import the
   `parquet` and `parquet_variant` crates in their `Cargo.toml` to use the 
variant
   functionality. You can see an example of how this might look in
   * https://github.com/apache/arrow-rs/pull/8129
   
   # What changes are included in this PR?
   
   1. Add the `variant` feature to the `parquet` crate
   2. Publicly export the variant crates
   3. Add docs and examples
   
   # Are these changes tested?
   Yes by CI
   
   # Are there any user-facing changes?
   
   If there are user-facing changes then we may require documentation to be 
updated before approving the PR.
   
   If there are any breaking changes to public APIs, please call them out.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to