#tensorflow #protobuf #serde #config

tensorflow_proto

Rust structs for Tensorflow Protocol buffers

3 releases (breaking)

0.3.0 Jan 11, 2021
0.2.0 Aug 8, 2020
0.1.0 Aug 8, 2020

#2193 in Encoding

Download history 120/week @ 2023-12-17 7/week @ 2023-12-31 62/week @ 2024-01-07 38/week @ 2024-01-14 63/week @ 2024-01-21 131/week @ 2024-01-28 335/week @ 2024-02-04 601/week @ 2024-02-11 215/week @ 2024-02-18 277/week @ 2024-02-25 239/week @ 2024-03-03 239/week @ 2024-03-10 151/week @ 2024-03-17 263/week @ 2024-03-24 339/week @ 2024-03-31

996 downloads per month

Custom license

140KB
177 lines

tensorflow_proto

Continuous Integration Crates.io docs.rs

tensorflow_proto is a crate that uses prost-build to generate Rust structs to be used in serialization/deserialization of protocol buffers wherever Tensorflow uses them.

In particular, this is useful in the tensorflow/rust library when calling SessionOptions::set_config to configure Tensorflow.

Note: This crate is tested against tensorflow 1.15.2 and 2.0.0.

Usage

Default Features

Add

tensorflow_proto = "0.3.0"

to your Cargo.toml.

Serde Support

Serde support can be enabled using the "serde-derive" feature:

tensorflow_proto = { version = "0.3.0", features = ["serde-derive"] }

This will add a #[derive(serde::Serialize, serde::Deserialize)] to every generated struct.

You must also depend on serde as well.

Easy conversion to bytes

Finally, you can enable code generation for an implementation of std::convert::TryFrom that encodes a message into a Vec<u8> for every struct generated by prost:

tensorflow_proto = { version = "0.3.0", features = ["convert"] }

Use custom Tensorflow *.proto sources

To use a different version of Tensorflow protocol buffer sources, define TENSORFLOW_PROTO_SOURCE to be the root of a Tensorflow source tree.

Dependencies

~1.9–3.5MB
~67K SLoC