Module cargo::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

Modules