Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Welcome!

LinkedIn GitHub Itch.io

Projects and articles found here!

Overview

diode - modifying a £10 switch to act as a firmware data diode

switch port_isolation

autospy - a test spy object library for Rust

#![allow(unused)]
fn main() {
#[cfg_attr(test, autospy::autospy)]
trait MyTrait {
    fn foo(&self, x: u32) -> bool;
}

fn use_trait(trait_object: &impl MyTrait) -> bool {
    trait_object.foo(10)
}

#[cfg(test)]
mod tests {
    use super::*;

    #[test]
    fn test_trait() {
        let spy = MyTraitSpy::default(); // build spy
        
        spy.foo.returns.set([true]); // set the return values

        assert!(use_trait(&spy)); // use the spy
        assert_eq!([10], spy.foo.arguments) // check the captured arguments
    }
}
}

licenses - cargo subcommand for collecting, summarising and checking licenses

$ cargo licenses --help
Usage: cargo licenses [OPTIONS] <COMMAND>

Commands:
  collect  Collects all licenses into a folder
  summary  Provides a summary of all licenses
  check    Checks all licenses for inconsistencies
  diff     Diff between the current licenses folder and the licenses that would be collected

Options:
  -d, --dev                  Include dev dependencies [default: excluded]
  -b, --build                Include build dependencies [default: excluded]
  -D, --depth <DEPTH>        The depth of dependencies to include [default: all sub dependencies]
  -e, --exclude <WORKSPACE>  Exclude specified workspace [default: all included]
  -i, --ignore <CRATE>       Ignore specified crate [default: all included]
  -c, --config <PATH>        Path to configuration file
  -h, --help                 Print help

w5500-evb-pico-json - protocol break relay for valid JSON on the W5500-EVB-Pico

W5500-ECB-Pico

trust-list - command line tool for generating a markdown dependency information table

namedownloadscontributorsreverse_dependenciesversionscreated_atupdated_atrepository
anyhow455074655242455810205/10/201919/09/2025https://github.com/dtolnay/anyhow
chrono39363107930+174919220/11/201408/09/2025https://github.com/chronotope/chrono
clap56455292130+2592644401/03/201529/10/2025https://github.com/clap-rs/clap
field_names55654813308/01/202104/01/2022https://github.com/TedDriggs/field_names
itertools70139948030+703813021/11/201431/12/2024https://github.com/rust-itertools/itertools
pbr2835208261052414/10/201508/02/2023https://github.com/a8m/pb
reqwest30766343930+1461211516/10/201613/10/2025https://github.com/seanmonstar/reqwest
serde70166718930+5954431505/12/201427/09/2025https://github.com/serde-rs/serde
serde_json61622793030+4196017707/08/201514/09/2025https://github.com/serde-rs/json

redacta - command line tool for redacting information from text

$ echo "Look at my 192.168.0.1 IP!" | redacta --ipv4
Look at my *********** IP!