Перейти к содержимому

Cargo

NORA реализует протокол Cargo Sparse Index для хранения и проксирования Rust-крейтов. Публикуйте приватные крейты и кешируйте публичные из crates.io.

Добавьте NORA как альтернативный реестр в ~/.cargo/config.toml:

[registries.nora]
index = "sparse+http://nora.example.com:4000/cargo/"

Использование реестра:

Окно терминала
# Публикация
cargo publish --registry nora
# Установка
cargo install my-crate --registry nora

Чтобы использовать NORA как источник по умолчанию для пакетов crates.io, добавьте:

[source.crates-io]
replace-with = "nora"
[source.nora]
registry = "sparse+http://nora.example.com:4000/cargo/"

NORA проксирует запросы к индексу и скачивание крейтов из upstream-реестра, если крейт не найден локально.

config.toml:

[cargo]
enabled = true
proxy = "https://crates.io"
proxy_timeout = 30

Переменные окружения:

ПеременнаяОписаниеПо умолчанию
NORA_CARGO_ENABLEDВключить реестр Cargotrue
NORA_CARGO_PROXYURL upstream-реестраhttps://crates.io
NORA_CARGO_PROXY_AUTHАутентификация upstream (user:pass)
NORA_CARGO_PROXY_TIMEOUTТаймаут upstream в секундах30
ФункцияСтатусПримечание
config.jsonПолнаяПоля dl и api
Sparse index lookupПолнаяПравила префиксов (1/2/3/ab/cd)
Скачивание крейтовПолнаяФайлы .crate по версии
cargo publishПолнаяJSON с длиной (length-prefixed) + .crate
Метаданные зависимостейПолнаяТрансформация req, package
Проверка SHA256ПолнаяПри публикации
Заголовки Cache-ControlПолнаяimmutable для скачивания, max-age=300 для индекса
Yank/unyankНе реализовано
Управление владельцамиНе реализовано
Категории/ключевые словаЧастичнаяСохраняются, но не доступны для поиска
  • Yank и unyank не поддерживаются — опубликованные версии нельзя пометить как отозванные.
  • Управление владельцами не реализовано.
  • Категории и ключевые слова сохраняются в метаданных, но не доступны для поиска.