FlatBuffers
An open source project by FPL.
|
We use reflection.fbs as our intermediate representation. flatc
parses .fbs
files, checks them for errors and stores the resulting data in this IR, outputting .bfbs
files. Since this IR is a Flatbuffer, you can load and use it at runtime for runtime reflection purposes.
There are some quirks:
Object
s.Enum
s.advanced_features
field of Schema
. These mark the presence of new, backwards incompatible, schema features. Code generators must error if generating a schema with unrecognized advanced features.--bfbs-filenames=$PROJECT_ROOT
, or it will be inferred to be the directory containing the first provided schema file.You can invoke it like so
This generates .bfbs
(binary flatbuffer schema) files.
Some information is not included by default. See the --bfbs-filenames
and --bfbs-comments
flags. These may be necessary for code-generators, so they can add documentation and maybe name generated files (depending on the generator).
TODO(cneo): Flags to output bfbs as flexbuffers or json.
TODO(cneo): Tutorial for building a flatc plugin.