swiftlang/swift-syntax
swiftlang/swift-syntax has 3,720 GitHub stars and 565 forks. GitHot measured 0 stars in 24 hours. Last checked 2026-11-07 16:58 UTC. Last push 2026-11-02.
A set of Swift libraries for parsing, inspecting, generating, and transforming Swift source code.
Measured star growth
- in 24h
- 0
- in 7 days
- Update delayed
- in 15 days
- Update delayed
- in 1 month
- Update delayed
Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.
README.md
OriginalSwift Syntax
The swift-syntax package is a set of libraries that work on a source-accurate tree representation of Swift source code, called the SwiftSyntax tree. The SwiftSyntax tree forms the backbone of Swift’s macro system – the macro expansion nodes are represented as SwiftSyntax nodes and a macro generates a SwiftSyntax tree to be inserted into the source file.
Documentation
You can read SwiftSyntax’s documentation on swiftpackageindex.com.
A great way to interactively explore the SwiftSyntax tree of a source file is https://swift-ast-explorer.com, developed by @kishikawakatsumi.
A set of example usages of swift-syntax can be found in Examples.
Releases
Releases of SwiftSyntax are aligned with corresponding language and tooling releases, for example the major version 509 of swift-syntax is aligned with Swift 5.9.
To depend on swift-syntax in a SwiftPM package, add the following to your Package.swift.
dependencies: [
.package(url: "https://github.com/swiftlang/swift-syntax.git", from: "<#latest swift-syntax tag#>"),
],
To add swift-syntax as a dependency of your Xcode project, go to the Package Dependencies tab of your Xcode project, click the plus button and search for https://github.com/swiftlang/swift-syntax.git.
Reporting Issues
If you should hit any issues while using SwiftSyntax, we appreciate bug reports on GitHub Issue.
Contributing
Start contributing to SwiftSyntax see this guide for more information.
Bazel
SwiftSyntax provides an experimental Bazel build configuration, maintained by Keith Smiley.
To use it, you can pull the source archive from the relevant release tag
into your MODULE.bazel file (preferred and recommended) with bazel_dep. Bzlmod support was added starting release of 509.0.0 and above. All available versions can be found in the Bazel Central Registry
bazel_dep(name = "swift-syntax", version = "600.0.1")
You can also pull source archive with WORKSPACE but note that it is preferred to use MODULE.bazel. To use WORKSPACE and swift-syntax, you can use http_archive as such
http_archive(
name = "SwiftSyntax",
sha256 = "f070fd44db9b33f430fd5b5d2700f1e2001c0028711859600e80cc975074fab0",
strip_prefix = "swift-syntax-509.1.0",
url = "https://github.com/apple/swift-syntax/archive/refs/tags/509.1.0.tar.gz",
)
and depend on the libraries you need from the
BUILD.bazel file. Each library also has an associated
Library_opt target (such as SwiftSyntax_opt) which forces
SwiftSyntax to always build with optimizations enabled. This may help
local runtime performance at the cost of debuggability, and initial
build time. Please tag any issues related to the Bazel configuration with the label "Bazel".
License
Please see LICENSE for more information.
Explore related projects
codecrafters-io/build-your-own-x
Master programming by recreating your favorite technologies from scratch.
560,963 starspublic-apis/public-apis
A collective list of free APIs
497,225 starsmorluto/rea
Reverse engineer anything with agents, from app behavior down to native binaries.
442,786 starsopenclaw/openclaw
The AI that really does things. Any OS. Any Platform. The lobster way. 🦞
394,185 stars