Skip to content

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.

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).

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.

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 shared utility library providing JSON-RPC schemas, logging sanitizers, and HTTP error transformers.
  • Vitest test runners managing unit and integration test coverage.
  • 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).
  • 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.