ADR-001 — Swift Native Engine
Status
Accepted for initial implementation.
Context
Burrow™ needs macOS-specific filesystem behavior while retaining a modern web-style management UI.
Decision
Use Swift for the privileged/local engine and Next.js/TypeScript for the UI. Persist local state in SQLite.
Consequences
Positive
- native macOS APIs and permission model;
- strong fit for mounted volumes, iCloud metadata, Trash, filesystem events;
- keeps filesystem privileges outside the browser UI;
- UI remains familiar and productive to build.
Negative
- two-language stack;
- typed contract generation/maintenance required;
- packaging requires integration work.
Alternatives
TypeScript/Node Engine
Simpler language stack, but less natural for long-term macOS-native filesystem integration and packaging.
Rust Engine
Excellent safety/performance and portability, but adds FFI/platform integration complexity without a current cross-platform requirement.
Revisit
Revisit only if Swift proves unable to meet scanning/hashing performance or packaging requirements after v0.1 profiling.