Skip to content

Technical Architecture

Kythia Convert is built on a modern, ultra-performant stack designed for minimal overhead and seamless Windows integration. Unlike traditional Electron apps, Kythia relies on Tauri v2 and Rust to keep RAM usage incredibly low (often under 20MB in the background).

The frontend configuration UI is built using React and TypeScript. It utilizes the native Windows WebView (Edge WebView2) for rendering, completely avoiding the Chromium overhead.

The heart of Kythia Convert is written in Rust. It listens for conversion requests (via Tauri IPC from the frontend, or via headless context-menu invocation).

  • Concurrency: Rust’s tokio async runtime allows the app to process dozens of files simultaneously across multiple threads.
  • Memory Safety: No crashes or silent memory leaks during massive 100+ file batch conversions.

For complex video and audio transcoding, Kythia bundles a minimal ffmpeg binary. Rust securely orchestrates this executable in the background, reading the standard output to provide the user with real-time progress notifications.

The most magical part of Kythia Convert is how it integrates with the Windows File Explorer.

When you install Kythia Convert, it registers a sophisticated set of registry keys in HKCU\Software\Classes.

When you right-click a file and select a conversion target (e.g., “Convert to WebP”):

  1. Windows launches kythia-convert.exe in headless mode (passing the file path as an argument).
  2. Because Kythia Convert uses a “Single Instance” lock, the new headless process forwards the file argument to the already-running background instance of Kythia via an internal pipe.
  3. The headless process instantly terminates, ensuring your screen isn’t cluttered with phantom windows.

Once the main Kythia app finishes converting the batch of files, it needs a way to highlight the newly created files in the exact same File Explorer window you used to trigger the conversion.

To achieve this native experience:

  1. Rust generates a temporary .vbs (VBScript) file encoded in UTF-16 LE.
  2. The VBScript uses the Windows Shell.Application COM interface to iterate over all open Explorer windows.
  3. It finds the window matching your current folder, and instructs it to programmatically select (highlight) the newly converted files.
  4. The VBScript then securely deletes itself.

This results in a perfectly seamless, native UX that feels like it was built by Microsoft themselves.