Skip to content

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.