Как связать с локальной библиотекой Rust? (аналогично npm-ссылке)
При разработке библиотеки в node
если вы хотите развиваться против библиотеки, которая существует только локально,
перед вами npm publish
,
вы можете использовать npm link /path/to/other/node_library
.
Что это значит для ржавчины?
Как вы создаете еще один исполняемый файл foo, который ссылается на библиотеку бара,
без первой пересылки библиотеки столбца на git?
Официальное руководство по ржавчине показывает, как это сделать, используя raw rustc
,
как это можно сделать в Cargo.toml
?
(Документация груза показывает вам, как построить lib,
но теперь, как связать с тем, у которого нет удаленного репозитория.)
Ответы
Ответ 1
Также можно использовать URL git file:
, если ваша зависимость находится в локальном репозитории git:
[dependencies.local_dep]
git = "file:/some/local/path"
Существует также очень полезная функция, когда вы хотите использовать свою собственную локальную копию некоторого пакета. Вы можете указать путь к такому пакету в файле ~/.cargo/config
:
package-name = "/path/to/package"
С этой конфигурацией, когда какой-либо другой пакет (пусть называют его a
) требует package-name
, независимо от того, что объявлено в a
манифесте о местоположении package-name
, package-name
будет построено из указанного дерева источника в этом файле конфигурации. Это полезно, когда вам нужно проверить свои изменения в библиотеке, от которой зависят другие проекты.
Ответ 2
Вы можете сделать:
[dependencies.local_dep]
path = "some/local/path"
Посмотрите https://github.com/gfx-rs/gfx-rs/blob/master/Cargo.toml для примера.
Ответ 3
http://doc.crates.io/manifest.html#the-dependencies-section содержит пример этого с полем path
(ящик geometry
):
[package]
# ...
[dependencies]
hammer = { version = "0.5.0", git = "https://github.com/wycats/hammer.rs" }
color = { git = "https://github.com/bjz/color-rs" }
geometry = { path = "crates/geometry" }