
Electron ships a whole browser. Tauri ships a native webview. For a video application that decodes RAW formats and manages large libraries, that difference shows up in memory, installer size and CPU work.
3 min readEngineering notes from building a local-first video search app: Rust, Tauri, SQLite, GPU decoding and the trade-offs behind them.

Electron ships a whole browser. Tauri ships a native webview. For a video application that decodes RAW formats and manages large libraries, that difference shows up in memory, installer size and CPU work.
3 min read
Swapping the global allocator to mimalloc took two lines of Rust. With release profile tuning and AVX2 targeting, it cut memory use about in half.
5 min read
SQLite holds FrameQuery's video library, search indexes, and biometric data. From one mutex to a concurrent, trigger-maintained, full-text-searchable backend.
7 min read
Tokio's spawn_blocking pool grows to 500 threads, which breaks CPU-bound video decoding. We replaced it with a bounded Rayon pool, cancellation tokens, and atomics.
6 min readThe image crate's WebP encoder ignores the quality parameter and always outputs lossless. We found out the hard way, and rebuilt the entire thumbnail pipeline while we were at it.
5 min read
CUDA pinned buffers on Windows, Metal unified memory on macOS, Vulkan compute shaders for ProRes RAW. How FrameQuery decodes professional video formats without unnecessary memory copies.
6 min read
FrameQuery can match faces and voices across your entire video library. We built the encryption architecture for GDPR, CCPA, and BIPA compliance from day one.
5 min read
Most video tools punt on professional RAW formats. FrameQuery decodes RED R3D and Blackmagic BRAW files natively with GPU acceleration, so you can index cinema footage without transcoding.
3 min read
FrameQuery uses NVIDIA CUDA on Windows and Linux, Apple Metal on macOS, and falls back to CPU when no GPU is available. All from a single Rust codebase.
2 min read