Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 14 additions & 3 deletions datafusion/proto-models/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,17 @@
[Apache DataFusion] is an extensible query execution framework, written in Rust, that uses [Apache Arrow] as its in-memory format.

This crate contains the [prost]-generated Rust types for DataFusion's logical
and physical plan protobuf schemas. It is intentionally kept narrow: it has no
DataFusion dependencies beyond [`datafusion-proto-common`] and exposes only the
generated structs (and optional [pbjson]/[serde] support).
and physical plan protobuf schemas, plus the `From` / `TryFrom` conversions
between those types and the [`datafusion-common`] types they mirror. The
conversions live here because their DataFusion side sits _below_ this crate in
the dependency graph and so cannot host the impls itself — the same arrangement
[`datafusion-proto-common`] uses for [`ScalarValue`] and [`Statistics`].

It is otherwise intentionally kept narrow: its only DataFusion dependencies are
[`datafusion-common`] and [`datafusion-proto-common`], and apart from those
conversions it exposes only the generated structs (and optional
[pbjson]/[serde] support). In particular it does not depend on
`datafusion-expr` or on any of the execution crates.

This crate is consumed by [`datafusion-proto`] and may also be depended on
directly by other DataFusion crates that need to refer to the proto schema
Expand All @@ -39,5 +47,8 @@ crate, there is no reason to use this crate directly in your project as well.
[prost]: https://docs.rs/prost/latest/prost/
[pbjson]: https://docs.rs/pbjson/latest/pbjson/
[serde]: https://serde.rs/
[`datafusion-common`]: https://crates.io/crates/datafusion-common
[`datafusion-proto`]: https://crates.io/crates/datafusion-proto
[`datafusion-proto-common`]: https://crates.io/crates/datafusion-proto-common
[`scalarvalue`]: https://docs.rs/datafusion-common/latest/datafusion_common/scalar/enum.ScalarValue.html
[`statistics`]: https://docs.rs/datafusion-common/latest/datafusion_common/stats/struct.Statistics.html
Loading