Connect with us

GitHub

Swift Service — инъекция зависимостей для современного Swift

Опубликовано

/

     
     

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.
Swift Service на GitHub: https://github.com/nslogmeng/swift-service
Платформа: iOS
⭐️: 22
Если вы нашли опечатку - выделите ее и нажмите Ctrl + Enter! Для связи с нами вы можете использовать info@apptractor.ru.
Telegram

Популярное

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: