GitPedia

Guerrilla

☢ Guerrilla (or Monkey) Patching in Rust for (unsafe) fun and profit.

From mehcode·Updated May 19, 2026·View on GitHub·

> Guerrilla (or Monkey) Patching in Rust for (unsafe) fun and profit. The project is written primarily in Rust, distributed under the Apache License 2.0 license, first published in 2018. Key topics include: monkey-patching, rust, testing, unsafe.

Guerrilla

Crates.io
Travis (.com)
AppVeyor
License

Guerrilla (or Monkey) Patching in Rust for (unsafe) fun and profit.

Provides aribtrary monkey patching in Rust. Please do not use this crate for anything outside of testing.
It will not end well.

Can patch (almost) any function in Rust (free, associated, instance, generic, etc.).

Usage

rust
extern crate guerrilla; #[inline(never)] fn say_hi(name: &str) { println!("hello, {}", name); } fn main() { // Variadic generics would be wondeful so we could have a [guerrilla::patch] let _guard = guerrilla::patch1(say_hi, |name| { // So sneaky... like a sneaky sneaky snek println!("bye, {}", name); }); // [...] // Thousands of lines codes further in the project // [...] say_hi("Steve"); // Once the guard is dropped the patch reverts the function to its original // behavior. drop(_guard); say_hi("Bob"); }

License

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted
for inclusion in the work by you, as defined in the Apache-2.0 license, shall be
dual licensed as above, without any additional terms or conditions.

Credits

Inspired (and derived) from monkey-patching-in-go.

Contributors

Showing top 4 contributors by commit count.

View all contributors on GitHub →

This article is auto-generated from mehcode/guerrilla via the GitHub API.Last fetched: 6/18/2026