32 releases (16 breaking)
0.17.0 | Nov 28, 2024 |
---|---|
0.16.0 | Oct 31, 2024 |
0.15.0 | Jun 29, 2024 |
0.14.0 | Mar 29, 2024 |
0.2.1 | Nov 29, 2020 |
#48 in Parser implementations
98,227 downloads per month
Used in 144 crates
(15 directly)
56KB
1K
SLoC
cargo-manifest
serde
definitions to read and write
Cargo.toml
files.
Description
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 modernCargo.toml
files.
Installation
cargo add cargo-manifest
Usage
use cargo_manifest::Manifest;
let manifest = Manifest::from_path("Cargo.toml").unwrap();
see docs.rs for more information.
Users
- cargo-chef
- crates.io is using this crate for
server-side validation of
Cargo.toml
files.
Alternatives
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.
License
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.
Dependencies
~2.3–3MB
~63K SLoC