Импортировать версию зависимости, которая требуется для другой зависимости [дубликат]

Aug 19 2020

У меня два ящика, Xи Zя хочу использовать оба, но это Xзависит Zот конкретной версии. Например, mongodb зависит от tokio 0.2, а я использовал tokio 0.3.

Xне реэкспорт, Zпоэтому я (думаю) должен вручную указать Zв Cargo.toml. Если я укажу неправильную версию, она может сломаться. Как я могу сказать Cargo, что нужно использовать Zту версию, которая Xтребуется?

Ответы

2 Emoun Aug 19 2020 at 09:03

Cargo имеет возможность автоматического разрешения версий зависимостей. Вы должны иметь возможность указать любые требования к версии, которые Zвам нужны, и cargo выяснит, как выбрать правильную версию для (потенциально) использования как в вашем коде, так и в X. Предполагается, что оба ящика правильно используют семантическое управление версиями.

Если Xникак не раскрывается Z, вам действительно не нужно использовать ту же версию Z. Если вы используете другую основную версию , Zчем X, Cargo будет просто использовать обе версии Z, один раз для вас , и один раз X.

См . Комментарии alexcrichton по этому поводу для получения более подробной информации.