Как я могу использовать библиотеку, которой нет на crates.io?
Я хочу использовать эту библиотеку: https://github.com/stepfunc/dnp3, но ее нет на crates.io, у нее есть только репозиторий, и я не могу его реализовать. Я пытался добавить это в свой
Cargo.toml
нравиться
[dependencies] dnp3 = "0.9.1"
но там написано, что его не существует, и действительно, у него нет ящика. Внутри репозитория есть несколько примеров в
dnp3/example
который имеет
use dnp3;
как если бы это был ящик.
Как я могу это использовать?
3 ответа
Вы можете напрямую указать Github (или любой другой репозиторий git) в качестве источника зависимости.
[dependencies]
dnp3 = { git = "https://github.com/stepfunc/dnp3" }
См. Ссылку на Cargo: https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html#specifying-dependencies-from-git-repositories
Вы можете указать зависимости как репозитории Git.
[dependencies]
dnp3 = { git = "https://github.com/stepfunc/dnp3" }
Если вы хотите указать ветку (при условии, что вы не хотите использовать
main
/
master
), вы можете добавить
branch
ключ к декларации выше:
[dependencies]
dnp3 = { git = "https://github.com/stepfunc/dnp3", branch = "feature/rustls" }
Связанное чтение: Указание зависимостей из репозиториев git
Другой способ сделать это - клонировать репозиторий и использовать зависимость с локальным путем.
[dependencies]
dnp3 = { path = "../dnp3" }
Связанные ржавчинедокументы по
Но, конечно, как упоминалось в других ответах, в вашем случае лучше использовать версию git.