I have a need at $DAYJOB to use Parquet but internal policies require the use of stable rust. As such I took a swing at removing the requirements in the apache-parquet crate to deal with specialization.
The bulk of this was to provide default implementations of reading and writing data from the format, with half the defaults being some form of error or panic. It is a little tricky (IMHO) to provide a fully static handling for the format which is what leads to some of the abuse.
Right now the PR removes the feature, but IMHO is very rough and could do with more work. In particular for the first pass I leaned to heavily on
std::mem::transmute as a C-Style cast for things where its possible to know the type. I do however feel that these casts are brittle in the light of maintenance and would like to see if others in the community can figure better approaches to removing some, if not all the
std::mem::transmute's I added to the code.
The PR is here: https://github.com/apache/arrow/pull/8698 and I would love a meta review if possible from interested people.