Module sources

Source
Expand description

The trait for sources of Cargo packages and its built-in implementations.

A source is a provider that contains source files and metadata of packages. It provides a number of methods to fetch those package information, for example, querying metadata or downloading files for a package. These information then can be used as dependencies for other Cargo packages.

This module provides Source trait as an abstraction of different sources, as well as SourceMap struct as a map of all available sources.

Several built-in implementations of Source trait are provided. Namely,

  • RegistrySource — A source that provides an index for people to query a crate’s metadata, and fetch files for a certain crate. crates.io falls into this category. So do local registry and sparse registry.
  • DirectorySource — Files are downloaded ahead of time. Primarily designed for crates generated from cargo vendor.
  • GitSource — This gets crate information from a git repository.
  • PathSource — This gets crate information from a local path on the filesystem.
  • ReplacedSource — This manages the source replacement feature, redirecting operations on the original source to the replacement.

This module also contains SourceConfigMap, which is effectively the representation of the [source.*] value in Cargo configuration.

Re-exports§

pub use self::config::SourceConfigMap;
pub use self::directory::DirectorySource;
pub use self::git::GitSource;
pub use self::path::PathEntry;
pub use self::path::PathSource;
pub use self::path::RecursivePathSource;
pub use self::registry::IndexSummary;
pub use self::registry::RegistrySource;
pub use self::registry::CRATES_IO_DOMAIN;
pub use self::registry::CRATES_IO_INDEX;
pub use self::registry::CRATES_IO_REGISTRY;
pub use self::replaced::ReplacedSource;

Modules§

config
Implementation of configuration for various sources.
directory
git
Home of the GitSource.
overlay
path
registry
A Source for registry-based packages.
replaced
source
Source trait for sources of Cargo packages.