A pristine way to manage Flutter versions.
A pristine way to manage Flutter versions. Install, switch and pin Flutter SDKs per project.
Empirical Performance: Clean-Slate Comparison
Measured live on Windows 11 with fresh installations from total scratch. Zero pre-cached data.
Clean-Slate Benchmark Suite Results
Tested from 100% scratch with zero pre-cached data on Windows 11
| Benchmark Test | Prist (Rust) | Puro | Raw Flutter SDK | Winner |
|---|---|---|---|---|
| Environment Switch Latency (prist use) | 0.02s – 0.03s (20ms – 30ms) ⚡ | 0.63s – 0.70s | Manual PATH edit (~minutes) | Prist 🏆 |
| Subsequent Environment Creation (3.24.3) | 49.28s (54% faster) | Fresh clone required | ~108s full clone | Prist 🏆 |
| Installer Execution (install.ps1) | 2.76s (3 MB executable) | ~2s - 3s | Manual zip extraction | Prist 🏆 |
| Total Footprint (2 Flutter SDK Envs) | 1.86 GB (Shared Git Objects) | Varies | >6.96 GB (3.48GB per SDK) | Prist 🏆 |
One command. Windows, macOS & Linux.
PS> powershell -c "irm https://prist.dev/install.ps1 | iex"PS> cargo install --git https://github.com/SnaidenP/pristCalculate your real disk space savings
Empirical measurements: Prist shares 1 central bare Git repo (~2.2 GB) via Git Alternates so each environment only adds ~0.4 GB.
* Real disk metrics: Standard/FVM clones a full ~3.4 GB Git repo for every version. Prist stores 1 shared central bare repo (~2.2 GB) and uses Git Alternates so additional versions only take ~0.4 GB of working tree files.
Environments, not global state.
Every SDK version lives in its own environment. Switch per-project or globally without reinstalling anything.
prist create foo stableNew env “foo” tracking stableprist create bar 3.13.6New env pinned to Flutter 3.13.6prist upgrade bar 3.10.6Switch “bar” to a specific versionprist lsList available environmentsprist releasesList available Flutter releasesprist use fooPin the current project to “foo”prist use -g barSet global default to “bar”prist cleanRemove prist config from projectprist rm fooDelete the “foo” environmentprist -e foo flutter …Run flutter inside an environment
Three small ideas, one clean SDK.
Parallel fetch
Git clone and engine download happen in parallel — no more waiting for one before the other.
Global git cache
Shared git object cache using deduplication similar to GitLab’s. Download each commit exactly once.
Symlinked engines
Engine binaries are shared across environments via symlinks — a single copy, many SDKs.
- flutter_3.241.9 GB
- flutter_3.221.9 GB
- flutter_3.191.9 GB
- shared git cache820 MB
- shared engines410 MB
- 3 environments~120 MB extra
Prist vs FVM vs Flutter CLI
A feature-by-feature breakdown showing why developers choose Prist.
| Feature | Prist | FVM | Flutter CLI |
|---|---|---|---|
| Built in Native Rust (Ultra-fast execution) | ✓ Yes | ✕ No | ✕ No |
| Shared Git Object Cache (Deduplication) | ✓ Yes | ✕ No | ✕ No |
| Symlinked Engine Binaries Across SDKs | ✓ Yes | ✕ No | ✕ No |
| Parallel Git Clone & Engine Downloads | ✓ Yes | ✕ No | ✕ No |
| Windows Non-Admin / Zero UAC Required | ✓ Yes | ✓ Yes | ✓ Yes |
| Per-Project SDK Version Pinning | ✓ Yes | ✓ Yes | ✕ No |
Frequently Asked Questions
Everything you need to know about Prist, performance, and Flutter version management.
How does Prist save up to 95% disk space?
Prist maintains a single global Git object cache for Flutter commits and symlinks engine binaries across environments. Adding new Flutter environments takes almost zero extra storage.
Does Prist require admin or UAC privileges on Windows?
No. Prist runs in user space without requiring administrator rights or Windows UAC prompts. It downloads prebuilt Rust binaries and manages local user directories.
How does Prist compare to FVM (Flutter Version Manager)?
Prist is written in native Rust for instant execution speed. It clones Git repositories and downloads engine binaries in parallel while deduplicating binaries across SDK versions.
How do I switch Flutter versions per project?
Inside your project directory, run `prist create my-env 3.24.3` and then `prist use my-env`. Prist pins the version to that specific workspace seamlessly.