#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

#1408 in Encoding

Download history 146/week @ 2024-07-19 216/week @ 2024-07-26 432/week @ 2024-08-02 97/week @ 2024-08-09 74/week @ 2024-08-16 129/week @ 2024-08-23 72/week @ 2024-08-30 151/week @ 2024-09-06 79/week @ 2024-09-13 141/week @ 2024-09-20 137/week @ 2024-09-27 42/week @ 2024-10-04 64/week @ 2024-10-11 44/week @ 2024-10-18 38/week @ 2024-10-25 94/week @ 2024-11-01

251 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

~2–4MB
~70K SLoC