Planus – alternative flatbuffer implementation

Build Status Rustc Version 1.64+ License Crates.io Rust Documentation Discord

Planus is an alternative compiler for flatbuffers, an efficient cross platform serialization library.

Getting started

First, install the command line utility

shell cargo install planus-cli

Next, write a flatbuffers file (or use an existing one). Then you can generate code using the command

shell planus rust -o <output_path.rs> <input_file.fbs>

For a complete example, see examples/rust.

Features

Planus View

To use it you need to specify the .fbs file, the root type and the binary file:

shell planus view test/rust/test_files/alignment.fbs Root test/rust/test_files/alignment/serialize/alignment.bin

Goals

Non-goals

Languages supported

Currently we only support Rust, though we plan to add support for more languages in the future. Pull requests are welcome!

Community

Before contributing or participating in discussions with the community, you should familiarize yourself with the Code of Conduct we follow in this project.

If you would like to contribute, please open an issue or pull request to discuss your idea.

For more more open-ended questions or complex decisions, feel free to open a Github Discussion or ping the developers on Discord.

Status of the implementation

We support most of the base language, though some parts have not been tested in-depth.

Things we do not currently support:

Things we will probably never support:

Minimum Supported Rust Version (MSRV)

Our current Minimum Supported Rust Version is 1.64.0. When adding features, we will follow these guidelines:

I think I found a bug!

Please file an issue! We also consider poor error messages or unintuitive behavior to be high-priority bugs.