serde
definitions to read and write
Cargo.toml
files.
This Rust crate contains various structs and enums to represent the contents of
a Cargo.toml
file. These definitions can be used with serde
and the toml
crate to read and write
Cargo.toml
manifest files.
This crate also to some degree supports post-processing of the data to emulate
Cargo's workspace inheritance and autobins
features. This is used for example
by crates.io to extract whether a crate contains a library or executable
binaries.
Note
The cargo team regularly adds new features to the Cargo.toml
file
definition. This crate aims to keep up-to-date with these changes. You should
keep this crate up-to-date to correctly parse all fields in modern
Cargo.toml
files.
cargo add cargo-manifest
use cargo_manifest::Manifest;
let manifest = Manifest::from_path("Cargo.toml").unwrap();
see docs.rs for more information.
- cargo-chef
- crates.io is using this crate for
server-side validation of
Cargo.toml
files.
This crate is a fork of the cargo_toml
project. There are only some minor differences between these projects at this
point, you will need to evaluate which one fits your needs better.
There is also cargo-util-schemas
now, which is maintained by the cargo team themselves. This crate was extracted
from the cargo codebase and is used inside the cargo
binary itself. It is
kept up-to-date with the latest changes to the Cargo.toml
file format, but is
currently lacking some of the post-processing features that cargo-manifest
provides.
This project is licensed under either of
-
Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
-
MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.