Практический воркшоп из пяти проектов на Rust procedural macros: в каждом есть заготовка и набор тестов trybuild, которые нужно реализовать.
krzysztofzablocki/Sourcery
Генератор кода для Swift на базе SwiftSyntax, который с помощью шаблонов создаёт шаблонный код: моки, реализации Equatable и Codable.
- Звёзды
- 8,031
- Форки
- 633
- Открытые issues
- 95
- Последний коммит
- 9 дней назад
Что это?
Sourcery — генератор кода для Swift с командной строкой. Он разбирает исходные файлы Swift с помощью SwiftSyntax от Apple и передаёт полученную информацию о типах в шаблоны Stencil, которые затем создают новые файлы Swift. Так можно избавиться от повторяющегося кода: моков протоколов, реализаций равенства и хеширования, вспомогательных конструкций для case enum, линз и соответствий Codable.
Например, чтобы сгенерировать моки, вместо ручного написания класса-мока для каждого протокола достаточно добавить аннотацию вроде `extension MyProtocol: AutoMockable {}`, и Sourcery создаст мок. Поскольку код генерируется заново на основе исходников, моки остаются актуальными при изменении членов протокола.
Sourcery доступен как бинарный файл, который можно установить через Homebrew, CocoaPods, Mint или Swift Package Manager; его также можно использовать как командный плагин Swift package или pre-commit hook. В режиме watch код генерируется заново при изменении файлов. Для настройки исходников, шаблонов и аргументов предусмотрен конфигурационный файл.
Ключевые возможности
- 01Генерирует моки протоколов по аннотации AutoMockable.
- 02Создаёт реализации Equatable, Hashable и Codable на основе определений типов.
- 03Позволяет писать собственные шаблоны Stencil для автоматизации произвольных шаблонов кода.
- 04В режиме watch повторно генерирует код при изменении исходников или шаблонов.
- 05Устанавливается через Homebrew, CocoaPods, Mint, SPM или pre-commit.
Сценарии использования
- Создание единообразных моков и заглушек для всех протоколов в iOS-проекте.
- Поддержание кода Equatable, Hashable или Codable в актуальном состоянии при изменении типов моделей.
- Создание шаблонов генерации кода для повторяющихся архитектурных паттернов проекта.
- Автоматизация экранов настроек и другого UI-кода на основе объявлений типов.
Быстрый старт
- 1
Установите бинарный файл sourcery с помощью Homebrew
brew install sourcery - 2
Запустите sourcery, указав пути к исходным файлам, шаблонам и результату
./bin/sourcery --sources <sources path> --templates <templates path> --output <output path>
Что важно знать
- Шаблоны, написанные на JS, не поддерживаются при сборке с помощью Swift Package Manager.
- Плагин команд Xcode доступен только начиная с Xcode 14.
В подборках
Темы
Частые вопросы
- Что такое Sourcery?
- Генератор кода для Swift на базе SwiftSyntax, который с помощью шаблонов создаёт шаблонный код: моки, реализации Equatable и Codable. Sourcery — генератор кода для Swift с командной строкой. Он разбирает исходные файлы Swift с помощью SwiftSyntax от Apple и передаёт полученную информацию о типах в шаблоны Stencil, которые затем создают новые файлы Swift. Так можно избавиться от повторяющегося кода: моков протоколов, реализаций равенства и хеширования, вспомогательных конструкций для case enum, линз и соответствий Codable.
- Sourcery можно использовать бесплатно? Какая у него лицензия?
- Sourcery распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- Sourcery всё ещё поддерживается?
- Активно поддерживается. Последний коммит в Sourcery — 28 окт. 2026 г..
- Для чего можно использовать Sourcery?
- Создание единообразных моков и заглушек для всех протоколов в iOS-проекте. Поддержание кода Equatable, Hashable или Codable в актуальном состоянии при изменении типов моделей. Создание шаблонов генерации кода для повторяющихся архитектурных паттернов проекта. Автоматизация экранов настроек и другого UI-кода на основе объявлений типов.
- Как установить Sourcery?
- Установите бинарный файл sourcery с помощью Homebrew: brew install sourcery Запустите sourcery, указав пути к исходным файлам, шаблонам и результату: ./bin/sourcery --sources <sources path> --templates <templates path> --output <output path>
- Где скачать Sourcery?
- Исходный код и инструкции по установке — на GitHub: https://github.com/krzysztofzablocki/Sourcery
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Бесплатный двусторонний MCP-сервер для Figma: помогает coding-агентам превращать макеты в код и записывать готовые дизайны на холст.
Библиотека Java, которая интегрируется с редакторами и системами сборки и генерирует шаблонный код — геттеры, equals, билдеры и поля логгеров — с помощью аннотаций.
Шаблон для разработки интеллектуальных контрактов GenLayer на примере футбольной игры на ставки: с тестами, линтингом, CI и фронтендом на Next.js.
Готовый к production шаблон Next.js 15 с TypeScript, Tailwind CSS v4, тестированием, линтингом и дополнительной инфраструктурой для деплоя в AWS.
Приложение для macOS с графическим интерфейсом управления симуляторами iOS, tvOS и watchOS через инструмент Apple simctl.