Как я могу использовать библиотеку, которой нет на 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.

Другие вопросы по тегам