Importer la version de la dépendance requise par une autre dépendance [dupliquer]
J'ai deux caisses X
et Z
je veux utiliser les deux, mais cela X
dépend Z
d'une version spécifique. Par exemple, mongodb dépend de tokio 0.2 et j'utilisais tokio 0.3.
X
ne réexporte pas Z
donc je (pense) dois spécifier manuellement Z
dans Cargo.toml
. Si je spécifie la mauvaise version, cela pourrait casser. Comment puis-je dire à Cargo d'utiliser la version de Z
cela X
requise?
Réponses
Cargo a une capacité de résolution automatique de version de dépendance. Vous devriez être en mesure de spécifier les exigences de version dont Z
vous avez besoin, et cargo saura comment choisir la bonne version à (potentiellement) utiliser à la fois dans votre code et X
. Cela suppose que les deux caisses utilisent correctement le contrôle de version sémantique.
S'il X
n'expose Z
d'aucune façon, vous n'avez pas vraiment besoin d'utiliser la même version de Z
. Si vous utilisez une version majeure différente Z
de X
, Cargo utilisera simplement les deux versions de Z
, une fois pour vous et une fois pour X
.
Voir les commentaires d'Alexcrichton à ce sujet pour un peu plus de détails.