alamb opened a new issue, #8747:
URL: https://github.com/apache/arrow-rs/issues/8747

   **Is your feature request related to a problem or challenge? Please describe 
what you are trying to do.**
   The parquet community is considering adding new encodings to the format. 
Part of adding new encodings is evaluating them on both real world datasets and 
ensuring they are efficiently implementable in multiple languages
   
   Clearly, I would like Rust to be one of those langauges
   
   The proposals I know of so far are:
   1. FSST : [Proposal: FSST (Fast Static Symbol Table) Encoding for 
Parquet](https://docs.google.com/document/d/1g7zgopxeHc5nofJXfc8EEp_HGMaI8g-jFVvNCs2GVA0)
 ([mailing list 
thread](https://lists.apache.org/thread/zfcg1cz79wmdp9nlqj1qz6zw9vq37l3k))
   2. ALP: [Proposal: ALP : Floating Point Encoding for 
Parquet](https://docs.google.com/document/d/1PlyUSfqCqPVwNt8XA-CfRqsbc0NKRG0Kk1FigEm3JOg/edit?tab=t.0#heading=h.5xf60mx6q7xk)
 ([mailing list 
thread](https://lists.apache.org/thread/tjtln1mmjqfoql1ls2dw9xpdk91r1909))
   
   **Describe the solution you'd like**
   
   I would like someone(s) to create a branch of arrow-rs 's parquet reader and 
implement one or the other of these proposed encodings in the context of 
parquet.
   
   Ideally there would be separate PRs / branches for the different proposed 
encodings
   
   This would involve likely
   1. Adding a new encoding to the metadata: [source 
link](https://github.com/apache/arrow-rs/blob/78bd20446c1cc54b398e925021933c14cb7784be/parquet/src/basic.rs#L573-L572)
   2. Add the appropriate encoder/decoders in parquet ([existing 
code](https://github.com/apache/arrow-rs/blob/dfc7ef8a3c4ddba1983a16a35d46e004a2e1ad06/parquet/src/encodings/mod.rs#L18-L20))
   3. Add some basic tests showing data could be round tripped with these 
encodings:  [examples of similar tets 
here](https://github.com/apache/arrow-rs/blob/5a384f4c3ccd397dcb8763d89e958da3fa4c666c/parquet/src/arrow/arrow_writer/mod.rs#L1521-L1752)
   4. Add some benchmarks: [examples of similar 
benchmarks](https://github.com/apache/arrow-rs/blob/02fa779a9cb122c5218293be3afb980832701683/parquet/benches/encoding.rs#L98-L97)
   
   There are already several Rust implementations of FSST (both Lance and 
Vortex) that could probably adapted
   - https://crates.io/crates/fsst
   - https://crates.io/crates/fsst-rust
   
   
   There are also several alp crates
   - https://crates.io/crates/alp
   - https://crates.io/crates/vortex-alp  (maybe [this 
code](https://crates.io/crates/vortex-alp))
   
   **Describe alternatives you've considered**
   <!--
   A clear and concise description of any alternative solutions or features 
you've considered.
   -->
   
   **Additional context**
   <!--
   Add any other context or screenshots about the feature request here.
   -->
   


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