#registry #server #cargo #mirror #serve #skrd

app silkroad

A full-featured registry server for Cargo

5 releases

0.0.4 Jul 10, 2019
0.0.3 Jul 5, 2019
0.0.2 Jun 29, 2019
0.0.1 Jun 29, 2019
0.0.0 Jun 21, 2019

#824 in HTTP server

MIT license

53KB
1.5K SLoC

SilkRoad(skrd)

Introduction

A full-featured registry server for Cargo.

Status

[WIP] Most features have not been implemented yet.

RoadMap

  • Serve an index repository and all crates
    • HTTP server
      • The Dumb Protocol
      • The Smart Protocol(except git-receive-pack)
      • HTTPS
    • Git server
    • No dependency on git
    • Registry Web API (Login, Publish and so on)
      • Login
      • Publish
      • Yank & Unyank
      • Owners
  • Mirroring
    • Index clone and sync
    • Crates download
    • Parallel download
    • Timer
  • Server Migration
    • Package
    • Unpackage
  • Homepage (An Angular based SPA?)

Dependencies

  • Git 2+

Usage

Installation

$ cargo install silkroad

Create a mirror

This command will create a mirror of source in the path directory.

$ skrd mirror <path> [source]

Examples:

$ skrd mirror mymirror https://mirrors.ustc.edu.cn/crates.io-index
$ skrd mirror official #default source = https://github.com/rust-lang/crates.io-index

Update a mirror

$ skrd update <path>

Example:

$ skrd update mymirror
$ skrd update # in mymirror

Serve

$ skrd serve <path>

Example:

$ skrd serve mymirror
$ skrd serve # in mymirror

References

License

SilkRoad is under the MIT license. See the LICENSE file for details.

Dependencies

~62MB
~1M SLoC