This repository serves as my submission for the RLOS 2022 as the screening exercise for the "Improve FlatBuffer Parser Support in VowpalWabbit".
-
Install FlatBuffers using this tutorial.
-
Assuming you are currently in the root directory of this project. Run the following commands:
$ mkdir build && cd build
$ cmake ..
$ cmake --build .
- Now to run the program, use the executable named
fparse
.
- To read the serialized data from a file, use the
-r
or--read
argument.
$ ./fparse --read <filename>
- To create a new object and serialize it into a file, run the program dirctly.
$ ./fparse
This exercise involves:
-
Creating a simple FlatBuffer schema file (can be found in
src/schema/schema.fbs
) with the table:- a_name: string
- a_value: float
- a_flag: bool
-
Creating the CLI application to write the serialised data to a file using this schema.
-
Creating the CLI application to read the serialised data from a file using this schema.
I have divided the whole code into a pluggable class named Parser
.
- After creating each row for the table,
Parser::createTableRow()
returns anOStreamBuffer
object which consists of the buffer and its size. - This buffer can be written to the disk using
Parser::writeToDisk()
function. - The logic for handling the arguments is kept only in the
main.cpp