Notes concernant Rust
Avoir plusieurs crates dans un seul dépôt
Il peut être nécessaire d’avoir plusieurs crates dans un seul dépôt. On peut procéder de la façon suivante :
├── Cargo.toml (1)
├── my_lib_crate/
│ ├── Cargo.toml (2)
│ └── src
│ └── lib.rs
├── my_bin_crate/
│ ├── Cargo.toml (3)
│ └── src
│ └── main.rs
├── Cargo.lock (*)
└── target/ (*)
Les Cargo.toml
(2)
et (3)
contiendront les informations habituelles de leur crate respectif.
Le Cargo.toml
(1)
quant à lui contiendra seulement :
[workspace]
members = ["my_lib_crate", "my_bin_crate"]
Ainsi, faire un cargo build
à la racine du dépôt compilera les deux crates.
Notez la présence du dossier target/
et du fichier Cargo.lock
à la racine (*)
. En effet ils restent, à côté du Cargo.toml
principal, celui définissant [workspace]
.
La variation suivante est également supportée :
├── Cargo.toml
└── foo/
├── my_lib_crate/
│ ├── Cargo.toml
│ └── src
│ └── lib.rs
└── my_bin_crate/
├── Cargo.toml
└── src
└── main.rs
Cette fois-ci, le Cargo.toml
principal contiendra :
[workspace]
members = ["foo/my_lib_crate", "foo/my_bin_crate"]
Dernière mise à jour : ven. 09 avril 2021