An open API service indexing awesome lists of open source software.

https://github.com/nervosnetwork/cfb

CFB (Canonical FlatBuffers) is a restricted variant of FlatBuffers for producing unequivocal transfer syntax.
https://github.com/nervosnetwork/cfb

encoding serialization

Last synced: over 1 year ago
JSON representation

CFB (Canonical FlatBuffers) is a restricted variant of FlatBuffers for producing unequivocal transfer syntax.

Awesome Lists containing this project

README

          

# CFB Encoding

## [![Build Status](https://travis-ci.com/nervosnetwork/cfb.svg?branch=master)](https://travis-ci.com/nervosnetwork/cfb)

CFB (Canonical FlatBuffers) is a restricted variant of FlatBuffers for producing unequivocal transfer syntax.

CKB no longer uses CFB, see [nervosnetwork/rfcs#136](https://github.com/nervosnetwork/rfcs/pull/136).

And CFB has not reached the defined scope since we decided to move on. However, the generated verifier is still useful since the current Rust Flatbuffer generator just panics on invalid input.

## Usage

Install the code geneartor as commane line utility:

```
pip install -U cfbc
```

First generate bfbs file from fbs:

```
flatc -b --schema example.fbs
```

Then generate rust files from bfbs:

```
cfbc example.bfbs
```

### Use Verifier with flatbuffers rust

- Add the generated `_generated_verifier.rs` to the project in the same
directory with the file `_generated.rs` generated by `flatc -r`.
- Add crate `flatbuffers-verifier` as a dependency in Cargo.toml.
- Use the same version of `flatbuffers` as in `flatbuffers-verifier`.

```
flatbuffers-verifier = "0.2.0"
flatbuffers = "0.6.0"
```

The crate `flatbuffers-verifier` defines a function `get_root`, which is intended to replace the
function with the same name in `flatbuffers`. This function will verify the
buffer, and returns a `Result` to indicate whether the buffer is valid.