16 个版本 (9 个稳定版)
使用旧的 Rust 2015
1.2.5 | 2020年7月1日 |
---|---|
1.2.2 | 2020年2月29日 |
1.2.1 | 2020年1月27日 |
1.1.0 | 2016年12月9日 |
0.1.2 | 2016年10月20日 |
#440 在 Cargo 插件 中
每月46 次下载
37KB
906 行
cargo-cacher
cargo-cacher
是一个类似于 apt-cacher-ng 的缓存服务器。目标是允许递归缓存 canonical crates.io 索引。
用法
要将系统配置为使用 cargo-cacher 的副本,您需要在项目中或在包含的文件夹中设置一个 .cargo/config 文件。该文件夹的内容应如下所示:
[source]
[source.mirror]
registry = "https://127.0.0.1:8080/index"
[source.crates-io]
replace-with = "mirror"
一旦设置完成,您的构建将通过本地代理进行,并且当第一次请求时,软件包将被拉取到本地文件系统。路径可以是远程主机,只要路径是到 /index。要运行 cargo-cacher,您可能需要使用以下几个参数:
USAGE:
cargo-cacher [FLAGS] [OPTIONS]
FLAGS:
-a, --all Prefetch entire Cargo index
-d Sets the level of debugging information
-h, --help Prints help information
-V, --version Prints version information
OPTIONS:
-g <git> Upstream git index (Default: https://github.com/rust-lang/crates.io-index.git)
-i <index> Path to store the indexes (git and fiels) at (Default: $HOME/.crates)
-p <port> Port to listen on (Default: 8080)
-f <prefetch> Path with a list of crate_name=version OR lock file to pre-fetch
-r <refresh> Refresh rate for the git index (Default: 600)
-t <threads> How many threads to use to fetch crates in the background
-u <upstream> Upstream Crate source (Default: https://crates.io/api/v1/crates/)
完整镜像
cargo-cacher 支持使用 -a
标志提供完整镜像。传递此标志将在启动时创建一个后台线程池,以获取上游索引中当前所有软件包。
预取
预取是一个值得进一步关注的选项。预取是一个包含每行一个软件包/版本的文件的路径,例如:
log=0.3.6
libc=0.1.12
上面的输入将预先获取 log 版本 0.3.6 和 libc 版本 0.1.12,在用户请求之前。这将在单独的线程上发生,因此服务器可以继续启动而无需等待预取完成。
待办事项
- 在后台线程中添加过期时间
- 添加统计信息
如果您想支持我
依赖关系
~35MB
~599K SLoC