| Crates.io | lupin |
| lib.rs | lupin |
| version | 1.0.0 |
| created_at | 2025-10-11 23:16:16.978014+00 |
| updated_at | 2025-10-24 16:36:41.143465+00 |
| description | A blazing-fast, lightweight steganography tool for concealing secret data within normal files. |
| homepage | https://github.com/niclashedam/lupin |
| repository | https://github.com/niclashedam/lupin |
| max_upload_size | |
| id | 1878646 |
| size | 105,174 |
A blazing-fast, lightweight steganography tool for concealing data inside normal-looking files. Lupin can be used as a CLI tool for quick operations or as a Rust library for integration into your applications.
In an era of increasing digital surveillance and diminishing privacy, steganography offers an extra layer of protection by hiding the very existence of sensitive communications. Unlike encryption, which makes data unreadable but obvious, steganography makes data invisible.
Lupin makes this powerful technique accessible through clean, modern tooling. It is named after Arsène Lupin, the fictional gentleman thief due to the art of hiding data in plain sight.
%%EOF marker (unlimited capacity, easily detectable)# Install
cargo install lupin
# Or build from source: git clone && cargo build --release
# Hide data in PDF
lupin embed document.pdf secret.txt output.pdf
# Extract data
lupin extract output.pdf recovered.txt
# More options
lupin --help
More info in the CLI Guide.
# Cargo.toml
[dependencies]
lupin = "1.0"
use lupin::operations::{embed, extract};
// Read files
let source = std::fs::read("document.pdf")?;
let payload = std::fs::read("secret.txt")?;
// Embed with metadata
let (embedded_data, metadata) = embed(&source, &payload)?;
println!("Used {} engine", metadata.engine);
// Extract
let (extracted, info) = extract(&embedded_data)?;
More info in the Library Guide.
Contributions welcome! Please read the architecture docs to understand the codebase structure.
Apache License 2.0 β see LICENSE for details.
Disclaimer: For educational and legitimate use only. Users are responsible for complying with applicable laws.