Swift Service — легковесный фреймворк внедрения зависимостей, созданный для Swift 6 Concurrency — с явными API для Sendable и MainActor, без внешних зависимостей и с изоляцией среды на основе TaskLocal.
Основные особенности:
- Дизайн, ориентированный на параллелизм — параллелизм в Swift является первоклассным элементом. Ограничения
SendableиMainActorявляются частью API и обеспечиваются компилятором на каждом этапе вызова — они не скрыты за@unchecked Sendable. - Нативная поддержка
MainActor— выделенные функцииregisterMain()/@MainService/@MainProviderдля типов, изолированныхMainActor. Соответствует требованиям Swift 6.2 Approachable Concurrency. - Нулевые зависимости — полностью построен на основе примитивов стандартной библиотеки Swift (
Synchronization.Mutex,@TaskLocal). - Изоляция среды
TaskLocal— переключение среды для каждой задачи для параллельно-безопасного тестирования. Не требуется изменение глобального состояния. - Гибкие области видимости — сколупы для синглтонов, временных объектов, графов и пользовательских имен для точного управления жизненным циклом.
- Знакомые шаблоны — API регистрации/разрешения, вдохновленный Swinject. Внедрение оберток свойств с модульной поддержкой Assembly.

