akasha (ah-kuh-sha) is a modern, performance-forward, database-backed image gallery written in Rust with (currently) egui-based GUI. Built to handle hundreds of thousands of images in a single import.
- native GUI with Rust+egui (for now...) no webjank.
- opens in one click. configured in TOML. optimized for desktops, not homelabs.
- simplistic, comfortable, content-over-chrome design.
- fast as hell, hundreds of images index per second on a LUKS2-encrypted SATA SSD.
- media stays where it is, no duplication. akasha gets you to the content you want, it doesn't demand control over it.
- updates to existing folders are processed automatically
- backwards-compatible schema means no database rebuilds. migration scripts provided for breaking changes.
- killer feature: modular AI classification via a "Searchables" schema abstraction that combines classifiers, taggers, embedding models, VLMs, under one roof
gallery-dl integrationbeing moved to another project :3- videos
- remuxing, transcoding
- interaction API
- more skinnable UI
akasha was coded primarily by an LLM called Kimi (2.6, 2.7). through its creation, it was actively directed and observed, as an exercise in learning about databases and Rust. it's primarily made for the use of its author and shared in hopes it'll be useful. akasha's design principles mean it shouldn't be of any harm to your media (it currently doesn't even have any means of manipulation that Could be harmful), but it's regardless a good idea to keep backups.
my collection stretches to nearly half a million images, accrued over nearly a decade. browsing it via file manager is a non-starter. i Need semantic search.
every image gallery sucks. half of them are giant docker containers meant to reimplement the entirety of google photos. hydrus network is a respectable project but it's an absolute behemoth that demands i put too much trust in it, and i see no reason for it to be as complex as it is for what it does.
and even among the solutions that Let you use an AI model for content search, they use piddly models from the stone ages that are dogwater at recognizing the things I'm actually interested in. so there is an absolute dearth of appropriate solutions for creatures like me.
thankfully we live in the era of vibe-coding. so i slopped harder than ive ever slopped before :3
clone it and cargo build homeboy. (or grab the latest nightly over hyea)
when building from source, akasha is pure-rust by default for ease of setup, but some features require non-rust libraries.
if u want an optional feature, use --features <feature> once for each.
hevc
HEIC images, H.265 in MP4 (eventually), etc. HEVC is patent-encumbered, so instead of shipping a decoder ourselves we rely on system libraries.
dependencies:
libheif>= 1.17.0libde265(for HEVC decoding)
# Debian / Ubuntu
sudo apt install libheif-dev libde265-dev
# Fedora
sudo dnf install libheif-devel libde265-develsimd-thumbnails
accelerates thumbnail generation.
dependencies:
libwebp
# Debian / Ubuntu
sudo apt install libwebp-dev
# Fedora
sudo dnf install libwebp-devel~.config/akasha/config.toml should be generated on first launch.
modify the [[import]] table array (including the [import.thumbnails] tables) to your preferences.
you can copy these table arrays multiple times for multiple imports.
refer to config.example.toml in this repo for info on all the available options.