# Apache DataFusion Protobuf Models
[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).
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
types without pulling in the full [`datafusion-proto`] surface.
Most projects should use the [`datafusion-proto`] crate directly, which
re-exports this module. If you are already using the [`datafusion-proto`]
crate, there is no reason to use this crate directly in your project as well.
[apache arrow]: https://arrow.apache.org/
[apache datafusion]: https://datafusion.apache.org/
[prost]: https://docs.rs/prost/latest/prost/
[pbjson]: https://docs.rs/pbjson/latest/pbjson/
[serde]: https://serde.rs/
[`datafusion-proto`]: https://crates.io/crates/datafusion-proto
[`datafusion-proto-common`]: https://crates.io/crates/datafusion-proto-common