Importa la versione della dipendenza richiesta da un'altra dipendenza [duplicato]
Ho due casse X
e Z
voglio usarle entrambe, ma X
dipende Z
da una versione specifica. Ad esempio, mongodb dipende da tokio 0.2 e io stavo usando tokio 0.3.
X
non riesportare Z
quindi (penso) devo specificare manualmente Z
in Cargo.toml
. Se specifico la versione sbagliata, potrebbe rompersi. Come posso dire a cargo di utilizzare qualsiasi versione di Z
ciò X
richieda?
Risposte
Cargo ha alcune funzionalità di risoluzione automatica della versione delle dipendenze. Dovresti essere in grado di specificare i requisiti di versione di cui Z
hai bisogno e cargo capirà come scegliere la versione corretta da (potenzialmente) utilizzare sia nel tuo codice che X
. Ciò presuppone che entrambe le casse utilizzino correttamente il controllo delle versioni semantico.
Se X
non espone Z
in alcun modo, non è davvero necessario utilizzare la stessa versione di Z
. Se utilizzi una versione principale diversa Z
da X
, Cargo utilizzerà entrambe le versioni di Z
, una volta per te e una volta per X
.
Vedi i commenti di alexcrichton su questo per un po 'più di dettaglio.