cargo-patch 0.1.2

Cargo Subcommand for patching dependencies using patch files
cargo-patch-0.1.2 is not a library.
Visit the last successful build: cargo-patch-0.3.2

cargo-patch

Cargo-Patch is a Cargo Subcommand which allows patching dependencies using patch files.

Installation

Simply run:

cargo install cargo-patch

Usage

To patch a dependecy one has to add the following to Cargo.toml:

[package.metadata.patch.serde]
patches = [
    "test.patch"
]

It specifies which dependency to patch (in this case serde) and one or more patchfiles to apply. Running:

cargo patch

will download the serde package specified in the dependency section to the target/patch folder and apply the given patches. To use the patched version one has to override the dependency using replace like this

[patch.crates-io]
serde = { path = './target/patch/serde-1.0.110' }

Patch format

You can either use diff or git to create patch files. Important is that file paths are relativ and inside the dependency

Features

  • Patch dependencies from crates.io
  • Patch dependencies from git url
  • Handle Workspaces
  • Use error messages which noone understands

Limitations

Its only possible to patch dependencies of binary crates as it is not possible for a subcommand to intercept the build process.