

Native OS X: I decided against this option early, for two reasons:ġ) I want the option to port Finda to Windows and (I can’t believe I’m saying this) Linux, since beta testers asked if they could buy a version for their respective platforms.Ģ) To use XCode for native development, I’d have to upgrade OS X, which would almost certainly break my computer in new and different ways than how it’s currently broken (and which I’ve made peace with). Given these minimal requirements, I considered my options. Otherwise, Finda should just invisibly chill in the background.

Design considerationsīefore diving into the technical details, it’ll help to understand the design goals of Finda itself.įinda supports a single interaction: You type stuff, and it finds things - browser tabs, text editor buffers, local files, browser history, open windows, whatever: In this article, I’ll explain how Finda uses Rust to leverage Electron’s strengths (easy packaging, access to complex OS-specific APIs, the visual capabilities of the browser) while minimizing its downsides of unpredictable latency and memory usage.

Given this goal, you might be surprised to learn that Finda is built with Electron, a framework that’s often decried for being the opposite of fast. When I built Finda, I wanted it to be fast - specifically, to respond to all user input within 16 milliseconds.
