zserio code generation in Go.
go-zserio is still in active development, and not completely stable yet. Until
the first stable release all versions will have a major version number of 0
.
The minor version number will be updated for (API) breaking changes.
First you need to install the go-zserio
command:
go install github.com/woven-planet/go-zserio/cmd/go-zserio@latest
With this command you can generate the Go interface files to read/write zserio:
go-zserio generate <zserio_directory> --rootpackage <root_package> --out <output_directory>
This command compiles the zserio files, and generates Go files to read and write
zserio encoded data. zserio_directory
is the directory where the zserio
definitions are stored. Supported file extensions are .zs
and .zserio
.
rootpackage
specifies the root package name of the generated Go files.
output_directory
specifies the path where the Go files will be generated.
- Implicit length arrays are deprecated, and are not supported.
- The ternary operator only works when used in functions.
- Cyclic imports, while not recommended, are supported by zserio, but not supported by go-zserio.
- Offsets and indexed offsets are not implemented yet.
- Constraints are not implemented yet.
- The
bazel run //internal/parser:update
command to rerun theantlr
parser does not work on Windows. See #128 for more details.