Skip to content

Latest commit

 

History

History
54 lines (34 loc) · 1.63 KB

README.md

File metadata and controls

54 lines (34 loc) · 1.63 KB

FlatBuffer Parser

This repository serves as my submission for the RLOS 2022 as the screening exercise for the "Improve FlatBuffer Parser Support in VowpalWabbit".

Setup Instructions

  1. Install FlatBuffers using this tutorial.

  2. Assuming you are currently in the root directory of this project. Run the following commands:

$ mkdir build && cd build
$ cmake ..
$ cmake --build .
  1. Now to run the program, use the executable named fparse.

Usage

  1. To read the serialized data from a file, use the -r or --read argument.
$ ./fparse --read <filename>
  1. To create a new object and serialize it into a file, run the program dirctly.
$ ./fparse

About the Exercise

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.

  1. After creating each row for the table, Parser::createTableRow() returns an OStreamBuffer object which consists of the buffer and its size.
  2. This buffer can be written to the disk using Parser::writeToDisk() function.
  3. The logic for handling the arguments is kept only in the main.cpp

Example Output

Example Output