A fast terminal-based meme generator that caches Imgflip templates locally, lets users search and fill dynamic text boxes, and instantly copies and opens the generated meme while keeping the session live for quick edits.
- Clone repository
cargo run
- Enter your imgflip credentials, a free account is required for creating images via the API.
- Enter text to search for memes by name
- Enter text into boxes, then press enter and meme will be generated and opened directly in your browser, and the URL will be put into your clipboard
- Core crate (
src/lib.rs
): exposes workflows for credential management, template catalog, meme creation, and clipboard/browser hooks. - Modules
config
: resolve platform-specific config/data paths.credentials
: persist Imgflip credentials inside the SQLite catalog and expose prompting utilities.api
: HTTP client built withreqwest
, JSON viaserde
, rate-limit/backoff handling.catalog
: local store of templates backed by SQLite, with fuzzy search support (fuzzy-matcher
).ui
: TUI built withratatui
+crossterm
; views for search list, template preview, box editor, status bar.actions
: command dispatcher coordinating async tasks, leveragingtokio
.integration
: clipboard (arboard
), URL opener (open
crate), logging (tracing
).
- Binary (
src/bin/imemey.rs
): bootstraps async runtime, hydrates state, launches UI loop.
- Unit tests for API parsing, catalog search, credential IO.
- Integration tests with
httpmock
simulating Imgflip endpoints. - Snapshot tests for TUI rendering via
insta
. - Continuous linting using
cargo fmt
andcargo clippy --deny warnings
.