Description
I'm opening this issue to discuss the prospect of transitioning into using the Arrow.jl
FlatBuffer submodule as the 'official' julia
FlatBuffer implementation. The main motivation for doing so is two fold. First, the current implementation isn't really 'flat' in the sense that you need to parse the buffer by mapping the data into julia
structs, rather than querying the buffer directly, which is a major motivation for using FlatBuffers in the first place. Second, as the Arrow.jl
implementation is based on the official go
implementation of FlatBuffers, which makes it easy to implement flatc
support by modifying existing code. Having flatc
support means that buffer access functionality is code generated. This is needed to be granted "official supported language" status, and to avoid having to manually implement julia
code to match any given FlatBuffer schema.
I have a WIP fork of the flatc code here, which generates Arrow.jl
FlatBuffer compatible julia
code for fbs schemas. Some major current limitations is that it doesn't handle union types, and that all the generated code is put in a single module scope (I haven't figured out how to deal with the schema namespace yet).
I also have a WIP fork of FlatBuffer.jl
here, containing the Arrow.jl
code, and some updated tests from the official Monster.fbs example schema. In particular, the code generation is made here, and the generated code example is here.
Activity