Przejdź do głównej zawartości

Stos technologiczny

Speedwave zbudowano z rdzenia w Rust, aplikacji desktopowej Tauri z frontendem w Angularze, przestrzeni roboczej Node.js/TypeScript z serwerami MCP oraz natywnych CLI w Swift na macOS. Całość spina GNU Make, więc każdy build, test i sprawdzenie przechodzi przez główny Makefile, zamiast wywoływać cargo czy npm bezpośrednio. Pełny obraz tego, jak te elementy współpracują w czasie działania, znajdziesz w architekturze pod maską.

Rdzeń w Rust to przestrzeń robocza Cargo z dwoma pakietami: speedwave-runtime, który abstrahuje logikę środowiska kontenerowego (Lima na macOS, WSL2 na Windows) i jest jedynym źródłem prawdy dla tej logiki, oraz speedwave-cli, czyli plik binarny wiersza poleceń. Reguły lintowania w przestrzeni roboczej są rygorystyczne: Clippy blokuje unwrap_used, expect_used i print_stdout, a kod unsafe jest zabroniony całkowicie.

Aplikacja desktopowa łączy backend Tauri 2 w Rust (pakiet speedwave-desktop, kompilowany zarówno na macOS, jak i Windows) z frontendem w Angularze 21 oraz zestawem testów end-to-end w WebdriverIO. Backend korzysta z wtyczek Tauri do obsługi schowka, okien dialogowych, logowania, wymuszania pojedynczej instancji i aktualizacji, a także z opcjonalnej wtyczki do testów e2e.

Serwery MCP znajdują się w wielopakietowej przestrzeni roboczej Node.js/TypeScript i obejmują integracje takie jak Atlassian, GitHub, GitLab, Slack, SharePoint i inne, obok pakietu shared, który jest jedynym źródłem prawdy dla narzędzi wspólnych dla MCP. Vitest uruchamia testy w całej przestrzeni roboczej.

Na macOS CLI w Swift dostarczają funkcje natywne: osobne pakiety SwiftPM do przechwytywania audio, kalendarza, poczty, notatek i przypomnień, oraz jeden pakiet współdzielony. Odpowiednik dla Windows jest planowany, ale jeszcze nie powstał.

Trzy narzędzia do testów pokrywają cały stos: cargo dla Rust, vitest dla Angulara i serwerów MCP oraz bats dla skryptów CLI i punktów wejścia kontenerów. Pełną listę wymagań wstępnych, celów Make i sposób uruchomienia działającego builda znajdziesz w konfiguracji środowiska deweloperskiego.