This is an alternative implementation of the official Apache Thrift code generator, with a focus on the compact protocol.
The initial goal of this project is to develop a more efficient rust parser for the metadata embedded in Apache Parquet files.
Higher performance is achieved by the following design decisions:
TFieldIdentifier
.Even though the initial target language for the code generator is rust, the code generator is written in Kotlin. The reasons for this choice are:
sealed
and data
classes are very powerful for modeling domain objects (similar to rust enums).The runtime support for the generated rust code can be found in the src/main/rust
folder.
To run this code generator you will need a Java Distribution like
Amazon Corretto
and Apache Maven as a build tool. Once these are installed and
their bin
folders added to the PATH
, the definitions for the included parquet.thrift
can be generated
by running:
$ ./generate-parquet.sh