krzysztofzablocki

krzysztofzablocki/Sourcery

Swift MIT

Meta-programming for Swift, stop writing boilerplate code.

8k stars
634 forks
recent
GitHub

8k

Stars

634

Forks

94

Open issues

0

Contributors

AI Analysis

Sourcery is a code generator for Swift that automatically generates boilerplate code using templates and Apple's SwiftSyntax. It eliminates repetitive coding tasks in iOS and Swift projects through meta-programming abstractions. Developers benefit from faster development cycles and reduced manual code maintenance.

Documentation 9/10
Activity 8/10
Community 8/10
Code quality 8/10

Inferred from signals mentioned in the README (tests, CI, type safety) — not a review of the actual code.

Overall score 8/10

AI's overall editorial judgment — not an average of the bars above, can weigh other factors too.

code-generation swift metaprogramming boilerplate-reduction templates
Actively maintained Well documented MIT licensed Popular Production ready
Deep Analysis · Based on README and public signals
2w ago

Sourcery brings Swift meta-programming to 40,000+ projects by generating boilerplate from type annotations

Sourcery is a Swift code generation tool built on Apple's SwiftSyntax that lets developers describe code patterns once via Stencil templates, then auto-generates mocks, Equatable conformances, Codable extensions, and arbitrary boilerplate. It targets iOS/macOS developers working in medium-to-large Swift codebases where repetitive, error-prone hand-written code accumulates. Claimed usage in 40,000+ projects and in apps from Airbnb, Bumble, and New York Times gives it credible production credibility. It has been maintained continuously since 2016 and has directly influenced Swift language evolution.

Origin

Created in December 2016 by Krzysztof Zabłocki when Swift lacked generics-derived conformances; originally used SourceKit, later migrated to Apple's SwiftSyntax. Its influence contributed to Swift adopting automatic Codable and Equatable synthesis.

Growth

Growth peaked in the 2017–2020 period as Swift adoption surged and teams sought to manage boilerplate in increasingly large codebases. Stars have plateaued near 8,000, likely because Apple's own language improvements absorbed some use cases (Codable, Equatable) and Swift Macros (SE-0382, Swift 5.9+) offer a native alternative. The project remains stable rather than high-growth.

In production

README explicitly names Airbnb, Bumble, and New York Times as users and claims 40,000+ projects. These are plausible given the tool's longevity and the scale of the iOS/macOS ecosystem. The claim is unverifiable from repository metadata alone, but the specificity and the project's age make it credible rather than marketing inflation.

Code analysis
Architecture

Appears to parse Swift source via SwiftSyntax to construct an AST-based type model, expose that model to Stencil (Jinja2-like) or Swift templates, then write generated files back to disk. Likely runs as a CLI tool integrable into Xcode build phases or CI pipelines. The Sourcery Pro Mac app extends this with a live editor, suggesting the core engine is decoupled from its CLI interface.

Tests

CI badges for macOS 13 and Ubuntu x86_64 workflows are visible in the README, indicating automated test runs on both platforms. Specific coverage percentage is not documented in the README; a codecov badge is present but commented out.

Maintenance

Last push was June 11, 2026 — approximately 15 days before the evaluation date — indicating active, recent maintenance. The project has been continuously maintained for nearly a decade. CI is running on both macOS and Linux. 634 forks and an active contributors graph suggest a healthy contributor base, not a single-maintainer bus-factor project.

Honest verdict

ADOPT IF: you maintain a mid-to-large Swift codebase on iOS/macOS that predates Swift 5.9 Macros, or you need flexible, multi-pattern code generation that goes beyond what Swift Macros currently offer out of the box — particularly for mock generation. AVOID IF: you are starting a greenfield Swift project targeting iOS 17+/Swift 5.9+ and can invest in authoring Swift Macros natively, or if you want zero external build-phase dependencies. MONITOR IF: you currently rely on Sourcery heavily and are planning a Swift Macros migration — track whether the Swift Macros ecosystem fills your specific template use cases before committing to a switch.

Independent dimensions

Mainstream potential

3/10

Technical importance

8/10

Adoption evidence

8/10

Risks
  • Swift Macros represent a structural long-term threat: as the macro ecosystem matures and minimum deployment targets rise, the incremental value of Sourcery will narrow for new projects.
  • Build-phase integration complexity — Sourcery runs as an external code generation step, which can cause friction with Xcode's build system, SPM pure setups, and incremental compilation.
  • Template maintenance burden: teams must own and maintain their Stencil templates over time; when Swift syntax evolves, templates may break and require updates.
  • Single primary maintainer historically increases bus-factor risk, even with a contributor community — though the decade-long track record partially mitigates this concern.
  • Platform scope is inherently limited to Swift/Apple ecosystem, meaning the project cannot expand its addressable market and long-term star growth is likely to remain flat.
Prediction

Sourcery will likely remain a stable, well-maintained tool serving its existing user base for several more years, but will see gradual adoption decline among new projects as Swift Macros mature. It may evolve into a bridge/migration tool or focus on advanced patterns macros cannot yet handle.

0 found this helpful

Newsletter

Get analyses like this every Monday

Free weekly digest of the most interesting open-source discoveries.

Languages

No language breakdown available.

Information

Language
Swift
License
MIT
Last updated
4w ago
Created
117mo ago
Analyzed with
anthropic/claude-haiku-4-5

Stars over time

Loading…

No commit data available.

Contributors over time

Top 100 contributors only — repos with more will plateau at 100.

Loading…

Open issues

No open issues — clean slate.

Open pull requests

No open pull requests.

Top contributors

Contributor data not available yet.

Recent releases

No releases published yet.

Similar repos

SwiftGen

SwiftGen/SwiftGen

SwiftGen is a code generator that automatically produces type-safe Swift code...

9.6k Swift Mobile
yonaskolb

yonaskolb/XcodeGen

XcodeGen is a Swift CLI tool that generates Xcode projects from YAML/JSON...

8.6k Swift Dev Tools
swiftlang

swiftlang/swift

Swift is a high-performance, memory-safe system and application programming...

70.1k Swift Dev Tools
nicklockwood

nicklockwood/SwiftFormat

SwiftFormat is a command-line tool and Xcode extension that reformats Swift...

8.9k Swift Dev Tools
vs. alternatives
Swift Macros (SE-0382, Swift 5.9+)

The most significant long-term pressure on Sourcery. Swift Macros are built into the compiler, require no external build step, and ship with Xcode. However, they require Swift 5.9+ (iOS 17+ deployment in some configurations), have a steeper authoring curve, and don't yet cover all patterns Sourcery handles. Sourcery remains relevant for teams targeting older OS versions or needing flexible Stencil-based templating.

SwiftGen

SwiftGen generates type-safe accessors for assets, strings, storyboards, and colors — a narrower, complementary scope. The two tools are often used together rather than as alternatives. SwiftGen does not offer general-purpose code generation from type metadata.

Mockolo

Mockolo (by Uber) focuses specifically on mock generation for Swift protocols and claims faster performance on large codebases. It competes directly with Sourcery's most popular use case (AutoMockable) but lacks Sourcery's general-purpose templating.

Needle (by Uber)

Needle targets dependency injection code generation specifically. Overlaps only with Sourcery's DI-related templates; Sourcery is more general-purpose but requires user-written templates for DI patterns.

Gyb (Swift stdlib tool)

Gyb is a lower-level Python-based templating tool used internally by Apple. It lacks Sourcery's Swift-type-awareness, has no community template library, and is not practical for typical app developers.