Как подключать внешние библиотеки к rust?

Данный код не компилируется, проблема в строчке extern crate camera_capture;. Как добавить к rust внешнюю библиотеку? Я скачал репозиторий,но как и где прописать к нему путь?

extern crate camera_capture;

fn main() {
    let cam = camera_capture::create(0).unwrap();
    let cam = cam.fps(5.0).unwrap().start().unwrap();
    for _image in cam {
        println!("frame");
    }
    println!("done");
}

Прописал в cargo.toml следующий строки, не помогло

[lib]
name = "camera_capture"
path = "/home/anton/dev/rust_test_proj/libs/camera_capture"

Ответы (2 шт):

Автор решения: Fat-Zer

Зависимости с crates.io в Cargo.toml описываются как:

[dependencies]
foo = "<version>"

, где foo — это имя пакета, а version — требуемая версия, соответствующая синтаксису описанному в документации; cargo сам скачает и соберёт все зависимости.

Соответственно для camera_capture я записал бы это как-то так:

[dependencies]
camera_capture = ">=0.5.0"

Дополнительное чтение: Букварь, описание директив Сargo.toml

→ Ссылка
Автор решения: mzabaluev

Если библиотека есть в реестре crates.io, ее можно указать по имени и версии, тогда cargo загрузит ее автоматически:

[dependencies]
camera_capture = "0.5"

Для справки, локальные зависимости в Cargo.toml можно описывать так:

[dependencies]
camera_capture = { path = "../libs/camera_capture" }

Этот способ, впрочем, не годится для кода, которым можно делиться с другими разработчиками. Для этого зависимости можно опубликовать на git-репозитории и использовать его URL в спецификации зависимости:

[dependencies]
camera_capture = { git = "https://github.com/foo/bar" }
→ Ссылка