AGPL-3.0 Licensing¶
SwiftReckless is distributed under the GNU Affero General Public License, version 3 (AGPL-3.0).
Why AGPL-3.0¶
The Reckless chess engine is licensed AGPL-3.0. SwiftReckless links the engine's
compiled code directly into its output: the RecklessFFI.xcframework on Apple
platforms and the source-built libcreckless static library on Android.
Non-Android source-arm host stubs do not contain the engine. The SwiftReckless
repository and distributed engine-bearing products are licensed under
AGPL-3.0; applications incorporating them must evaluate the corresponding
license obligations.
Key AGPL-3.0 obligations¶
Source availability (AGPL §1–6, same as GPL-3.0)¶
Any distribution of a binary that incorporates SwiftReckless must:
- Include or offer the complete Corresponding Source (your application's source code and the SwiftReckless + Reckless sources).
- License the distributed binary under AGPL-3.0 (or a compatible license for components licensed under compatible terms).
Network interaction (AGPL §13)¶
AGPL-3.0 extends the GPL source-offer obligation to remote network interaction: if you run a modified version of the covered work as part of a network-accessible service (e.g. a chess server that evaluates positions using SwiftReckless), you must offer that service's users the Corresponding Source of your modified version.
The network-interaction clause concerns remote interaction with a modified covered version. Local, on-device distribution instead raises the AGPL's distribution obligations. Consult qualified counsel for a specific product or distribution channel.
Compatibility with Stockfish (GPL-3.0)¶
The Reckless engine (AGPL-3.0) is compatible with Stockfish (GPL-3.0) in the sense that AGPL-3.0 is a stronger copyleft that is GPL-3.0 compatible. A combined binary that links both engines (if ever shipped) must offer the Corresponding Source for both engines and must comply with AGPL-3.0 for the combined work.
In Fianchetto, the two engines are never simultaneously linked into the same binary
target — they are separate SwiftPM products (SwiftReckless and SwiftStockfish) that
a consuming target links individually.
Reckless engine upstream¶
| Property | Value |
|---|---|
| Upstream | https://github.com/codedeliveryservice/Reckless |
| License | AGPL-3.0 |
| Fork used | github.com/fianchettochess/Reckless.git, pinned tag swiftreckless-v0.9.1 (commit de35beac9074137e9776af14859bf6f40562553c) |
| Fork branch | swiftreckless on upstream tag v0.9.0 |
The fork makes five focused patches: it adds a [lib] target (upstream Reckless is
binary-only), replaces the compile-time NNUE embed with runtime loading, makes UCI
I/O instance-local, guards terminal positions with no legal root move, and makes
sequential engine lifetimes restart-safe. These changes are required by the
wrapper's library and lifecycle model.
SwiftReckless license file¶
The LICENSE file at the root of the SwiftReckless repository contains the full
AGPL-3.0 text and is the authoritative license for the package.
Practical guidance¶
- App Store distribution: Do not assume that source availability alone resolves compatibility between AGPL-3.0 and a store's current terms, DRM, or signing requirements. Review the current agreement and the license with qualified counsel before distribution.
- Modifications: If you modify SwiftReckless or the Reckless fork and distribute the resulting binary, you must publish those modifications under AGPL-3.0.
- Network services: If you run a modified version behind a network API, AGPL §13 requires you to offer source to users of that service.
This is not legal advice
The above is an engineering-oriented summary of AGPL-3.0 obligations as they apply to this package. For legal advice specific to your situation, consult a qualified attorney.