462 lines
10 KiB
Groff
462 lines
10 KiB
Groff
.TH FLATC "1" "October 2022" "" "User Commands"
|
|
.SH NAME
|
|
.B flatc
|
|
\(en FlatBuffers compiler
|
|
.SH SYNOPSIS
|
|
.B flatc
|
|
.RI [ OPTION ]...\:
|
|
.IR FILE ...\:
|
|
.RI [\-\-\ BINARY_FILE ...]
|
|
.SH OPTIONS
|
|
.IR FILE s
|
|
may be schemas (must end in
|
|
.BR .fbs ),
|
|
binary schemas (must end in
|
|
.BR .bfbs ),
|
|
or JSON files (conforming to preceding schema).
|
|
.IR BINARY_FILE s
|
|
after the
|
|
.B \-\-
|
|
must be binary flatbuffer format files.
|
|
.P
|
|
Output files are named using the base file name of the input,
|
|
and written to the current directory or the path given by
|
|
.BR \-o .
|
|
.TP
|
|
.B \-\-binary\fR, \fB\-b
|
|
Generate wire format binaries for any data definitions.
|
|
.TP
|
|
.B \-\-json\fR, \fB\-t
|
|
Generate text output for any data definitions.
|
|
.TP
|
|
.B \-\-cpp\fR, \fB\-c
|
|
Generate C++ headers for tables/structs.
|
|
.TP
|
|
.B \-\-go\fR, \fB\-g
|
|
Generate Go files for tables/structs.
|
|
.TP
|
|
.B \-\-java\fR, \fB\-j
|
|
Generate Java classes for tables/structs.
|
|
.TP
|
|
.B \-\-dart\fR, \fB\-d
|
|
Generate Dart classes for tables/structs.
|
|
.TP
|
|
.B \-\-ts\fR, \fB\-T
|
|
Generate TypeScript code for tables/structs.
|
|
.TP
|
|
.B \-\-csharp\fR, \fB\-n
|
|
Generate C# classes for tables/structs.
|
|
.TP
|
|
.B \-\-python\fR, \fB\-p
|
|
Generate Python files for tables/structs.
|
|
.TP
|
|
.B \-\-lobster
|
|
Generate Lobster files for tables/structs.
|
|
.TP
|
|
.B \-\-lua\fR, \fB\-l
|
|
Generate Lua files for tables/structs.
|
|
.TP
|
|
.B \-\-rust\fR, \fB\-r
|
|
Generate Rust files for tables/structs.
|
|
.TP
|
|
.B \-\-php
|
|
Generate PHP files for tables/structs.
|
|
.TP
|
|
.B \-\-kotlin
|
|
Generate Kotlin classes for tables/structs.
|
|
.TP
|
|
.B \-\-jsonschema
|
|
Generate Json schema.
|
|
.TP
|
|
.B \-\-swift
|
|
Generate Swift files for tables/structs.
|
|
.TP
|
|
.B \-\-nim
|
|
Generate Nim files for tables/structs.
|
|
.TP
|
|
.B \-o\ \fIPATH
|
|
Prefix
|
|
.I PATH
|
|
to all generated files.
|
|
.TP
|
|
.B \-I\ \fIPATH
|
|
Search for includes in the specified path.
|
|
.TP
|
|
.B \-M
|
|
Print
|
|
.BR make (1)
|
|
rules for generated files.
|
|
.TP
|
|
.B \-\-version
|
|
Print the version number of
|
|
.B flatc
|
|
and exit.
|
|
.TP
|
|
.B \-\-strict\-json
|
|
Strict JSON: field names must be\ / will be quoted,
|
|
no trailing commas in tables/vectors.
|
|
.TP
|
|
.B \-\-allow-non-utf8
|
|
Pass non-UTF-8 input through parser and emit nonstandard
|
|
.BI \\\\\\\\ x
|
|
escapes in JSON.
|
|
(Default is to raise parse error on non-UTF-8 input.)
|
|
.TP
|
|
.B \-\-natural\-utf8
|
|
Output strings with UTF-8 as human-readable strings.
|
|
By default, UTF-8 characters are printed as
|
|
.BI \\\\\\\\u XXXX
|
|
escapes.
|
|
.TP
|
|
.B \-\-defaults\-json
|
|
Output fields whose value is the default when writing JSON.
|
|
.TP
|
|
.B \-\-unknown\-json
|
|
Allow fields in JSON that are not defined in the schema.
|
|
These fields will be discared when generating binaries.
|
|
.TP
|
|
.B \-\-no\-prefix
|
|
Don\(cqt prefix enum values with the enum type in C++.
|
|
.TP
|
|
.B \-\-scoped\-enums
|
|
Use C++11 style scoped and strongly typed enums.
|
|
Also implies
|
|
.BR \-\-no\-prefix .
|
|
.TP
|
|
.B \-\-no\-emit\-min\-max\-enum\-values
|
|
Disable generation of
|
|
.B MIN
|
|
and
|
|
.B MAX
|
|
enumerated values for scoped enums and prefixed enums.
|
|
.TP
|
|
.B \-\-gen\-includes
|
|
.RI ( deprecated ),
|
|
this is the default behavior.
|
|
If the original behavior is required (no include statements) use
|
|
.BR \-\-no\-includes .
|
|
.TP
|
|
.B \-\-no\-includes
|
|
Don\(cqt generate include statements for included
|
|
schemas the generated file depends on (C++\ / Python).
|
|
.TP
|
|
.B \-\-gen\-mutable
|
|
Generate accessors that can mutate buffers in-place.
|
|
.TP
|
|
.B \-\-gen\-onefile
|
|
Generate single output file for C# and Go.
|
|
.TP
|
|
.B \-\-gen\-name\-strings
|
|
Generate type name functions for C++ and Rust.
|
|
.TP
|
|
.B \-\-gen\-object\-api
|
|
Generate an additional object-based API.
|
|
.TP
|
|
.B \-\-gen\-compare
|
|
Generate
|
|
.B operator==
|
|
for object-based API types.
|
|
.TP
|
|
.B \-\-gen\-nullable
|
|
Add Clang
|
|
.B _Nullable
|
|
for C++ pointer.
|
|
or
|
|
.B @Nullable
|
|
for Java
|
|
.TP
|
|
.B \-\-java\-package\-prefix
|
|
Add a prefix to the generated package name for Java.
|
|
.TP
|
|
.B \-\-java\-checkerframework
|
|
Add
|
|
.B @Pure
|
|
for Java.
|
|
.TP
|
|
.B \-\-gen\-generated
|
|
Add
|
|
.B @Generated
|
|
annotation for Java
|
|
.TP
|
|
.B \-\-gen\-jvmstatic
|
|
Add
|
|
.B @JvmStatic
|
|
annotation for Kotlin methods
|
|
in companion object for interop from Java to Kotlin.
|
|
.TP
|
|
.B \-\-gen\-all
|
|
Generate not just code for the current schema files,
|
|
but for all files it includes as well.
|
|
If the language uses a single file for output (by default
|
|
the case for C++ and JS), all code will end up in this one file.
|
|
.TP
|
|
.B \-\-gen\-json\-emit
|
|
Generates encoding code which emits Flatbuffers into JSON.
|
|
.TP
|
|
.B \-\-cpp\-include
|
|
Adds an
|
|
.B #include
|
|
in generated file.
|
|
.TP
|
|
.B \-\-cpp\-ptr\-type\ \fIT
|
|
Set object API pointer type
|
|
(default
|
|
.BR std::unique_ptr ).
|
|
.TP
|
|
.B \-\-cpp\-str\-type\ \fIT
|
|
Set object API string type
|
|
(default
|
|
.BR std::string ).
|
|
.BR \fIT\fB::c_str() ,
|
|
.BR \fIT\fB::length() ,
|
|
and
|
|
.BR \fIT\fB::empty()
|
|
must be supported.
|
|
The custom type also needs to be constructible from
|
|
.B std::string
|
|
(see the
|
|
.B \-\-cpp\-str\-flex\-ctor
|
|
option to change this behavior).
|
|
.TP
|
|
.B \-\-cpp-str-flex-ctor
|
|
Don\(cqt construct custom string types by passing
|
|
.B std::string
|
|
from Flatbuffers, but (\fBchar*\fR\ + \fIlength\fR).
|
|
.TP
|
|
.B \-\-cpp-std\ \fICPP_STD
|
|
Generate a C++ code using features of selected C++ standard.
|
|
.IP
|
|
.B Supported
|
|
.I CPP_STD
|
|
.B values:
|
|
.RS +7n
|
|
.IP \(bu 2n
|
|
.B c++0x
|
|
\(en generate code compatible with old compilers;
|
|
.IP \(bu 2n
|
|
.B c++11
|
|
\(en use C++11 code generator
|
|
.RI ( default );
|
|
.IP \(bu 2n
|
|
.B c++17
|
|
\(en use C++17 features in generated code
|
|
.RI ( experimental ).
|
|
.RE
|
|
.TP
|
|
.B \-\-cpp\-static\-reflection
|
|
When using C++17, generate extra code to provide compile-time
|
|
(static) reflection of Flatbuffers types.
|
|
Requires
|
|
.B \-\-cpp\-std
|
|
to be
|
|
.RB \(lq c++17 \(rq
|
|
or higher.
|
|
.TP
|
|
.B \-\-object\-prefix
|
|
Customise class prefix for C++ object-based API.
|
|
.TP
|
|
.B \-\-object\-suffix
|
|
Customise class suffix for C++ object-based API.
|
|
Default value is
|
|
.RB \(lq T \(rq.
|
|
.TP
|
|
.B \-\-go\-namespace
|
|
Generate the overriding namespace in Golang.
|
|
.TP
|
|
.B \-\-go\-import
|
|
Generate the overriding import for flatbuffers in Golang
|
|
(default is
|
|
.RB \(lq github.com/google/flatbuffers/go \(rq).
|
|
.TP
|
|
.B \-\-go\-module\-name
|
|
Prefix local import paths of generated go code with the module name.
|
|
.TP
|
|
.B \-\-raw\-binary
|
|
Allow binaries without
|
|
.B file_identifier
|
|
to be read.
|
|
This may crash
|
|
.B flatc
|
|
given a mismatched schema.
|
|
.TP
|
|
.B \-\-size\-prefixed
|
|
Input binaries are size prefixed buffers.
|
|
.TP
|
|
.B \-\-proto\-namespace\-suffix\ \fISUFFIX
|
|
Add this namespace to any flatbuffers generated from protobufs.
|
|
.TP
|
|
.B \-\-oneof\-union
|
|
Translate
|
|
.B .proto
|
|
oneofs to flatbuffer unions.
|
|
.TP
|
|
.B \-\-keep\-proto\-id
|
|
Keep protobuf field ids in generated fbs file.
|
|
.TP
|
|
.B \-\-proto\-id\-gap
|
|
Action that should be taken when a gap between protobuf ids found.
|
|
.IP
|
|
.B Supported values:
|
|
.RS +7n
|
|
.IP \(bu 2n
|
|
.B nop
|
|
\(en do not care about gap
|
|
.IP \(bu 2n
|
|
.B warn
|
|
\(en A warning message will be shown about the gap in protobuf ids
|
|
.RI ( default )
|
|
.IP \(bu 2n
|
|
.B error
|
|
\(en An error message will be shown and the fbs generation will be interrupted.
|
|
.RE
|
|
.TP
|
|
.B \-\-grpc
|
|
Generate GRPC interfaces for the specified languages.
|
|
.TP
|
|
.B \-\-schema
|
|
Serialize schemas instead of JSON (use with
|
|
.BR \-b ).
|
|
.TP
|
|
.B \-\-bfbs\-comments
|
|
Add doc comments to the binary schema files.
|
|
.TP
|
|
.B \-\-bfbs\-builtins
|
|
Add builtin attributes to the binary schema files.
|
|
.TP
|
|
.B \-\-bfbs\-gen\-embed
|
|
Generate code to embed the
|
|
.B bfbs
|
|
schema to the source.
|
|
.TP
|
|
.B \-\-conform\ \fIFILE
|
|
Specify a schema the following schemas should be an evolution of.
|
|
Gives errors if not.
|
|
.TP
|
|
.B \-\-conform\-includes
|
|
Include path for the schema given with
|
|
.BR \-\-conform\ \fIPATH .
|
|
.TP
|
|
.B \-\-filename\-suffix
|
|
The suffix appended to the generated file names.
|
|
Default is
|
|
.BR \(oq _generated \(cq.
|
|
.TP
|
|
.B \-\-filename\-ext
|
|
The extension appended to the generated file names.
|
|
Default is language-specific (e.g.,
|
|
.RB \(oq .h \(cq
|
|
for C++)
|
|
.TP
|
|
.B \-\-include\-prefix\ \fIPATH
|
|
Prefix this path to any generated include statements.
|
|
.TP
|
|
.B \-\-keep\-prefix
|
|
Keep original prefix of schema include statement.
|
|
.TP
|
|
.B \-\-reflect\-types
|
|
Add minimal type reflection to code generation.
|
|
.TP
|
|
.B \-\-reflect\-names
|
|
Add minimal type/name reflection.
|
|
.TP
|
|
.B \-\-rust\-serialize
|
|
Implement
|
|
.B serde::Serialize
|
|
on generated Rust types.
|
|
.TP
|
|
.B \-\-rust\-module\-root\-file
|
|
Generate rust code in individual files with a module root file.
|
|
.TP
|
|
.B \-\-root\-type\ \fIT
|
|
Select or override the default root_type.
|
|
.TP
|
|
.B \-\-require\-explicit\-ids
|
|
When parsing schemas, require explicit ids
|
|
.RB ( id:\ \fIx ).
|
|
.TP
|
|
.B \-\-force\-defaults
|
|
Emit default values in binary output from JSON.
|
|
.TP
|
|
.B \-\-force\-empty
|
|
When serializing from object API representation,
|
|
force strings and vectors to empty rather than null.
|
|
.TP
|
|
.B \-\-force\-empty\-vectors
|
|
When serializing from object API representation,
|
|
force vectors to empty rather than null.
|
|
.TP
|
|
.B \-\-flexbuffers
|
|
Used with
|
|
.RB \(lq binary \(rq
|
|
and
|
|
.RB \(lq json \(rq
|
|
options, it generates
|
|
data using schema-less FlexBuffers.
|
|
.TP
|
|
.B \-\-no\-warnings
|
|
Inhibit all warning messages.
|
|
.TP
|
|
.B \-\-warnings\-as-errors
|
|
Treat all warnings as errors.
|
|
.TP
|
|
.B \-\-cs\-global\-alias
|
|
Prepend
|
|
.RB \(lq global:: \(rq
|
|
to all user generated csharp classes and structs.
|
|
.TP
|
|
.B \-\-cs\-gen\-json\-serializer
|
|
Allows (de)serialization of JSON text in the Object API.
|
|
(requires
|
|
.BR \-\-gen\-object\-api ).
|
|
.TP
|
|
.B \-\-json\-nested\-bytes
|
|
Allow a
|
|
.B nested_flatbuffer
|
|
field to be parsed as a vector of bytes in JSON,
|
|
which is unsafe unless checked by a verifier afterwards.
|
|
.TP
|
|
.B \-\-ts\-flat\-files
|
|
Generate a single typescript file per
|
|
.B .fbs
|
|
file.
|
|
Implies
|
|
.BR \-\-ts\-entry\-points .
|
|
.TP
|
|
.B \-\-ts\-entry\-points
|
|
Generate entry point typescript per namespace.
|
|
Implies
|
|
.BR \-\-gen\-all .
|
|
.TP
|
|
.B \-\-annotate\-sparse\-vectors\ \fISCHEMA
|
|
Don\(cqt annotate every vector element.
|
|
.TP
|
|
.B \-\-annotate\ \fISCHEMA
|
|
Annotate the provided
|
|
.I BINARY_FILE
|
|
with the specified
|
|
.I SCHEMA
|
|
file.
|
|
.TP
|
|
.B \-\-no\-leak\-private\-annotation
|
|
Prevents multiple type of annotations within a Fbs
|
|
.I SCHEMA
|
|
file.
|
|
Currently this is required to generate private types in Rust.
|
|
.TP
|
|
.B \-\-python\-no\-type\-prefix\-suffix
|
|
Skip emission of Python functions that are prefixed with typenames
|
|
.TP
|
|
.B \-\-python\-typing
|
|
Generate Python type annotations
|
|
.TP
|
|
.B \-\-file\-names\-only
|
|
Print out generated file names without writing to the files
|
|
.SH EXAMPLES
|
|
.EX
|
|
.B flatc\ \-c\ \-b\ schema1.fbs\ schema2.fbs\ data.json
|
|
.EE
|
|
.SH "SEE ALSO"
|
|
.UR https://google.github.io/flatbuffers
|
|
Official documentation
|
|
.UE
|