Skip to content

An attempt to create flatc support, and using the Arrow.jl FlatBuffer submodule as the 'official' implementation #61

Open
@jonalm

Description

@jonalm

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions