Skip to content

[Parquet] Prototype ALP encoding #8748

Closed

Description

@alamb

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.

One proposed encoding is:

Describe the solution you'd like

I would like someone(s) to create a branch of arrow-rs 's parquet reader and implement this proposed encoding in the context of parquet to see how it would work.

This would involve likely

  1. Adding a new encoding to the metadata: source link
  2. Add the appropriate encoder/decoders in parquet (existing code)
  3. Add some basic tests showing data could be round tripped with these encodings: examples of similar tets here
  4. Add some benchmarks: examples of similar benchmarks

Here are some existing crates

Describe alternatives you've considered

Additional context

Activity

  1. alamb commented on Oct 30, 2025

    @alamb
    ContributorAuthor

    FYI @liamzwbao we were speaking about this

  2. alamb commented on Dec 8, 2025

    @alamb
    ContributorAuthor
  3. alamb commented on Jan 14, 2026

    @alamb
    ContributorAuthor

    If anyone is interested, there is now a draft spec that we could try to implement

  4. alamb commented on Feb 4, 2026

    @alamb
    ContributorAuthor

    Update here is that the ALP spec is pretty close to being finalized in the C++ side - the current version of the spec is this document: https://docs.google.com/document/d/1xz2cudDpN2Y1ImFcTXh15s-3fPtD_aWt/edit (I haven't translated it into markdown yet)

    I think this ticket is ready for someone to try and implement it in Rust

    In parallel, we are also trying to get some example files to test with

    As an aside, @julienledem noted in the Parquet sync call today that he had good luck with Claude code translating the C/C++ implementation and the spec into a working java implementation. Maybe we can use such an approach with the Rust implementation as well

  5. sdf-jkl commented on Feb 4, 2026

    @sdf-jkl
    Member

    I'd like to give this a go

  6. sdf-jkl commented on Feb 4, 2026

    @sdf-jkl
    Member

    take

  7. alamb commented on Feb 5, 2026

    @alamb
    ContributorAuthor

    BTW I started working on generating example Parquet files that are encoded using ALP using the C++ implementation. See here

    It doesn't have the entire setup, but this file should be enough to verify the plumbing is working:

    single_f64_ALP.zip

    To begin I suggest

    1. Update to the thrift definitions (to include the new encoding value)
    2. Add the ALP value to the encoding enum, and wire it up through the decoder (throw a Not implemented error when it gets to actually decoding the pages)

    With that framework in place, we can begin working on the actual decoding algorithm

  8. Polepoint commented on May 1, 2026

    @Polepoint

    Hi @sdf-jkl @alamb , any update on the remaining work for this PR?

    It looks like the latest review comments and cargo fmt were addressed on Mar
    12. Is there anything still blocking review or moving this out of draft?

  9. alamb commented on May 3, 2026

    @alamb
    ContributorAuthor

    Hi @sdf-jkl @alamb , any update on the remaining work for this PR?

    It looks like the latest review comments and cargo fmt were addressed on Mar 12. Is there anything still blocking review or moving this out of draft?

    Hi @Polepoint

    My personal focus recently has been on reviewing the proposed spec, see:

    Next I hope to review the work that @sdf-jkl has done in #9372

    If you are interested in helping move the project along, perhaps you could help review / test the implementation in #9372 -- for example, does it work / get the same answers compared to the data in apache/parquet-testing#100 ?

  10. alamb commented on Aug 4, 2026

    @alamb
    ContributorAuthor

    Since the ALP encoding has been adopted by parquet, closing this "prototype" issue and filed a ticket to track the actual implementaiton

  11. alamb commented on Aug 4, 2026

    @alamb
    ContributorAuthor

    nice work @sdf-jkl

  12. added a commit that references this issue on Sep 4, 2026
    cb682a2
  13. added 2 commits that reference this issue on Sep 18, 2026
    e808acb
    d8865ec
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions