Technology stack
Speedwave is engineered as a polyglot monorepo combining Rust system components, a cross-platform desktop UI built with Angular and Tauri, TypeScript-based MCP microservices, and native platform helpers. Orchestration across all language layers is governed by the root Makefile. For runtime details, see Runtime architecture.
Rust core workspace
Section titled “Rust core workspace”The core backend repository is organized as a Cargo workspace containing primary crates:
speedwave-runtime: Shared system library managing Lima VM virtualization (macOS) and WSL2 subsystems (Windows), image building, and container socket lifecycle.speedwave-cli: Terminal command-line executable.speedwave-desktop: Tauri 2 desktop application binary coordinating IPC bridges, window managers, and local proxy daemons.
The workspace enforces strict compiler safety rules: #![deny(unsafe_code)], with Clippy policies rejecting unwrap operations (clippy::unwrap_used), explicit panics (clippy::expect_used), and unbuffered stdout printing (clippy::print_stdout).
Desktop frontend application
Section titled “Desktop frontend application”The user interface utilizes Angular running within a Tauri 2 Webview container:
- Frontend framework: Angular standalone components with reactive RxJS and Signals state management.
- Tauri plugins: Official system plugins for single-instance locking, native file dialogs, system tray menus, clipboard access, and auto-updates.
- End-to-end testing: WebdriverIO automation running against packaged Tauri application instances.
MCP microservices workspace
Section titled “MCP microservices workspace”The mcp-servers/ directory hosts a TypeScript multi-package workspace managed with npm workspaces:
- Individual worker services for Atlassian, GitHub, GitLab, Slack, SharePoint, Redmine, Playwright web automation, and office document parsing.
- A
sharedutility library providing JSON-RPC schemas, logging sanitizers, and HTTP error transformers. - Vitest test runners managing unit and integration test coverage.
Native platform helpers
Section titled “Native platform helpers”- macOS: Standalone SwiftPM command-line packages (
calendar-cli,reminders-cli,mail-cli,notes-cli,audio-cli) interfacing directly with Apple EventKit, ScreenCaptureKit, and Apple Events. - Windows: Native Rust WinRT/MAPI modules (currently under development).
Testing toolchain
Section titled “Testing toolchain”cargo test: Unit, integration, and doc tests across Rust crates.vitest: Unit and snapshot tests for Angular and MCP packages.bats: Shell script and container entrypoint testing suites.