Почему запрашиваемая 0.4.4 пытается использовать openssl 0.9.12, даже если у меня есть openssl 0.7.14 в моем Cargo.toml?
У меня есть простой проект, использующий пример Solicit, чтобы сделать запрос с HTTPS. Мой Cargo.toml имеет:
[package]
name = "test"
version = "0.1.0"
authors = ["einchear"]
[dependencies.openssl]
version = "0.7.14"
features = ["tlsv1_2", "npn"]
[dependencies.solicit]
version = "0.4.4"
features = ["tls"]
Когда я пытался бежать cargo build
ошибка:
error: Package `openssl v0.9.12` does not have these features: `npn, tlsv1_2`
Почему 0.9.12 вместо 0.7.14?
1 ответ
Более полутора лет Solicit не выпускал новую версию - была выпущена 0.4.4 2015-09-07. Версия 0.4.3 (0.4.4 по какой-либо причине не имеет тега git) требует какой-либо версии openssl, поэтому она просто использует самую последнюю версию. Неважно, что у вас есть в вашем Cargo.toml, потому что важны зависимости Solicit.
Уже невозможно опубликовать ящик на crates.io с *
зависимость от версии!
Текущая основная версия Solicit была прикреплена к openssl 0.6, который все еще является старой версией.
На данный момент не похоже, что Solicit является активно развивающейся библиотекой. Вы можете исследовать альтернативные решения или рассмотреть возможность внесения исправлений для обновления зависимостей.
Если вам не нужны какие-либо другие ящики, требующие поддержки OpenSSL, вы можете использовать версию Solicit для основной ветви и просто использовать старую версию OpenSSL.