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]
