Built in Rust. Verified by measurement.
Snipset's speed is not a slogan. Every headline number on this page is produced by a reproducible harness against the current release, then republished automatically with each new version. Nothing here is estimated from a blog post.
Why this product wins on speed and why it will stay ahead
Three structural advantages that competitors cannot retrofit onto an Electron or webview architecture.
The current x64 MSI is 12.4 MB (setup EXE 9.6 MB), measured from the public update channel on 2026-09-06. Electron-based rivals commonly ship 80โ250 MB installers because they bundle a full Chromium runtime.
Working-set RSS is sampled on a dedicated release machine after warm-up and published on every release. Typical webview/text-expander rivals idle between 150โ450 MB (vendor-reported); Snipset's tray process carries no webview, no GPU process, and no cloud sync daemon.
The matching work between your keystroke and an expansion runs in pure native Rust against an in-process SQLite database: no webview, no IPC, no JavaScript in the hot path. The measured engine percentiles are shown in the harness section below.
Four numbers, re-measured every release
Values marked 'measured' come from this release's data file. Anything not yet re-run on the release machine is clearly flagged instead of invented.
Windows x64 MSI, v0.6.780, measured from the live update channel.
Working-set RSS at tray idle on the release machine, sampled after warm-up.
Process launch to tray-and-hooks ready on the release machine (measured from OS start).
In-process snippet match (p50) on a warm cache. No webview, no IPC, no JS in the hot path.
Why the numbers hold up at scale
Structural design decisions that keep Snipset fast today and prevent the performance cliff webview expanders hit as features grow.
Zero-IPC Hot Path
Keystrokes are captured by native OS hooks and matched directly against an in-process cache. There is no webview, no JavaScript thread, and no IPC round-trip between your keystroke and the expansion engine, the usual source of perceived lag in Electron and browser-extension expanders.
Embedded SQLite, WAL mode, in-process
Snippets and clipboard history live in an embedded SQLite database opened by the Rust process itself. Reads happen in the same process as matching, with WAL mode keeping disk I/O effectively out of the critical path: no remote sync server in between.
Native OS hooks (Win32 / Unix)
Global input is observed at the OS level through a lock-free queue rather than a polling loop. Expansions trigger deterministically instead of waiting on an event loop that also has to service UI work.
Dynamic webview hibernation
The visual UI only materializes when you open Magic Menu or the manager. When closed, rendering engines hibernate, so the tray process does not carry the GPU, compositor, or renderer overhead that defines an Electron idle footprint.
No background telemetry or sync daemons
Nothing phones home, and nothing syncs in the background. An always-on text expander sees everything you type; Snipset's architecture keeps that trust surface local and keeps the CPU, network, and battery budget yours.
One engine, three platforms
The same Rust engine ships on Windows, Linux, and Android. Because the core is shared and compiled native everywhere, performance characteristics are uniform instead of being re-implemented per platform in different languages.
Engine micro-benchmarks
Reproducible in-process timings produced by cargo bench -p snipset --bench perf_report. Reported as p50 / p95 over thousands of iterations.
Where Snipset wins: in architecture, measurement, and ownership
A side-by-side against the five expanders an investor will ask about. Competitor cells come from vendor documentation; Snipset's own cells are from this repository's feature set and its release measurements.
| Capability | Beeftext | TextExpander | espanso | Raycast | Alfred | Snipset |
|---|---|---|---|---|---|---|
| Architecture & Data Privacy | ||||||
| Expansion engine | Native (Windows) | App + browser ext (JS) | Rust core | Electron | Native (macOS) | Native Rust, Tauri 2 |
| Data residency | Local | Cloud SaaS sync | Local | Local + cloud | Local (sync opt-in) | 100% local SQLite WAL |
| Typing hot path | No webview | Webview / browser | No webview | Webview | No webview | No webview, no IPC |
| Telemetry posture | Minimal | Sync telemetry | None | Product telemetry | Opt-in | Zero telemetry, air-gapped |
| OS coverage | Windows | Windows ยท macOS ยท web | Windows ยท macOS ยท Linux | macOS | macOS | Windows ยท Linux ยท Android |
| Intelligence & Automation | ||||||
| On-device local AI | โ | Cloud API add-on | Community only | Cloud AI | Workflows | Local Ollama, zero cost |
| Semantic vector search | โ | โ | โ | Cloud search | โ | Built-in embeddings |
| Clipboard history manager | โ | โ | โ | Paywalled | Add-on | Built-in (Ctrl+]) |
| Scripting engine | โ | JS (web) | Config DSL | JS/TS ext | Workflows | Embedded Rhai |
| Pricing & Ownership | ||||||
| Pricing model | Free (OSS) | $40โ$120/yr | Free (OSS) | Pro subscription | Powerpack license | One-time lifetime |
| Offline capability | Full | Degraded offline | Full | Reduced | Full | 100% offline |
| Memory/startup posture | Lean native | Webview runtime | Lean native | Electron runtime | Lean native | Measured per release |
Competitor cells reflect vendor documentation and public feature pages as of 2026-09-06and are informative, not adversarially measured. Snipset cells reflect this repository's feature set; its performance claims are restricted to the measured values on this page. See the full feature comparison and the AI & Benchmark page.
How these numbers are produced
Public, reproducible, and re-run on every release, so the data cannot drift from the binary.
- Installer size: measured with an HTTP
HEADrequest against the public update endpoint/api/updater/download/v0.6.780/โฆ, or from the freshly built artifact during release. Source and check date are recorded per value. - Engine micro-benchmarks: compiled with the release profile and run ascargo bench -p snipset --bench perf_report. Each operation reports the p50 and p95 over thousands of iterations, using black-boxed inputs that mirror real snippet caches (10 to 500 snippets).
- Process metrics (idle RAM, cold start): sampled on the release machine by scripts/release/measure-performance.ps1. Cold start is measured from OS process creation to tray-and-hooks ready; idle RSS is the Working Set after warm-up. The machine's OS, CPU and RAM are recorded beside the values so version-to-version deltas stay meaningful.
- Publication: the three producers are merged into the single data file (apps/website/src/data/performance.json) byscripts/release/generate-performance-data.mjs. This page renders only that file; there is no second source of truth.
Measurement host is recorded and displayed here as soon as the next release run completes.
Performance questions, answered plainly
The questions an engineer, or an investor, asks before trusting a benchmark.