Repository navigation
License
English · Español
Tapete's source code is free software under the GNU General Public License v3.0 or later (SPDX GPL-3.0-or-later). The full text is the LICENSE file at the root of the repository, the official GPL v3 from gnu.org without changes.
- Anyone can use, study, share and modify the code.
- Whoever distributes a modified version (an installer, an APK, a fork) must publish its source under the same licence. Using a modified copy privately obliges nothing.
- «Or later» lets the code be used under any later GPL the FSF publishes. This is the form the GNU project recommends; switching to
GPL-3.0-onlywould mean changing the identifier in every place listed below.
The identifier is the same in every manifest, so packaging tools and dependency scanners read one answer:
| File | Field |
|---|---|
LICENSE |
Full text |
package.json |
license |
src-tauri/Cargo.toml, src-tauri/crates/mesa/Cargo.toml, src-tauri/crates/proxy-core/Cargo.toml, src-tauri/plugins/android-extra/Cargo.toml
|
license |
src-tauri/tauri.conf.json |
bundle.license |
README.md, README.es.md
|
«License» / «Licencia» section, before the credits |
bundle.license only fills the package metadata (for example the licence field of the .deb and .rpm). Inferred: it adds no licence-acceptance screen to any installer, since none is configured (licenseFile is not set).
- Magic: The Gathering: card names, rules text, card images, set symbols and the official frames belong to Wizards of the Coast. The app downloads them (Scryfall, Card Conjurer) and does not distribute them.
-
Third-party resources keep their own licences: the bundled fonts, Noto Color Emoji, the Iconify icon sets (
game-icons:*, including the one the logo is based on, requires attribution), the Balatro pack's font, and the data sources. The Balatro pack's templates and sample cards are by u/Poke_Hybrids; no licence is stated for them and express permission to redistribute them within Tapete is pending confirmation (see Frame Packs). They are listed in the «Credits» section of theREADME.md. - Downloadable content (the «Original» frames, packs such as Balatro, free fonts, tweakcn themes) is fetched on demand with a pinned commit and a SHA-256 per file and is never part of the installers (see Frame Packs), so the app's licence does not relicense it.
- The friends server and the frame-packs repository are separate projects with their own licences: the server is
AGPL-3.0-or-later(the GPL for software used over a network: whoever runs a modified copy for others must offer them its source), and in the packs repository only the build scripts areGPL-3.0-or-later, while each pack keeps its authors' terms (itsCREDITS.md).
Every Rust crate and npm package that ends up in the app must have a licence compatible with GPL v3. The usual permissive ones are: MIT, Apache-2.0, BSD-2/3-Clause, ISC, Zlib, 0BSD, Unlicense, CC0-1.0, BSL-1.0, Unicode-3.0 and MPL-2.0. Apache-2.0 is compatible with GPL v3 but not with GPL v2, which is one more reason the project is v3.
Not acceptable for code that ships: GPL-2.0-only, SSPL, BUSL and similar source-available licences, proprietary licences, and CC licences with NC or ND clauses. A crate with a dual licence (MIT OR Apache-2.0) counts under whichever option is compatible.
Tools used only for building (Biome, TypeScript, caniuse-lite under CC-BY-4.0…) do not end up in the app, so they do not need to be compatible.
Neither cargo-deny nor cargo-license is required; the declared licences come from the tools already used:
# Rust: every package in Cargo.lock with its declared licence
cd src-tauri
cargo metadata --format-version 1 --locked \
| python3 -c 'import json,sys,collections; c=collections.Counter(p.get("license") or "(none: see license_file)" for p in json.load(sys.stdin)["packages"]); [print(n, l) for l, n in c.most_common()]'
# npm: only what ships (--prod), grouped by licence
pnpm licenses list --prodA package with no license field (only license_file) has to be read by hand. Inferred: it is worth repeating this after adding a dependency, together with cargo audit (see Testing and CI); there is no CI gate for licences.
Use and build · Uso y desarrollo
- User-Guide · Guía de usuario
- Development-Setup · Preparación del entorno de desarrollo
- Testing-and-CI · Tests y CI
- Releases-and-Auto-Updates · Versiones y actualizaciones automáticas
- Conventions · Convenciones
- Rename-to-Tapete · Cambio de nombre a Tapete
- License · Licencia
Architecture · Arquitectura
- Architecture · Arquitectura
- IPC-and-Error-Handling · IPC y manejo de errores
- Rust-App-Layer · Capa de aplicación Rust
Data · Datos
- Deck-Model · Modelo del mazo
- Storage-and-Blobs · Almacenamiento y blobs
- Deck-Package-Format · Formato del paquete de mazo
- Deck-Library · Biblioteca de mazos
Getting cards · Conseguir cartas
- Decklist-Parsing · Parseo de la lista del mazo
- Scryfall-Integration · Integración con Scryfall
- External-Sources · Fuentes externas
- Card-Identification-and-OCR · Identificación de cartas y OCR
Layout, images, PDF · Maquetación, imagen y PDF
- Layout-Engine · Motor de maquetación
- Imaging-and-PDF · Imagen y PDF
- Export · Exportación
- The-Card-Stamp · El sello de las cartas
- Live-Preview · Vista previa en vivo
- Statistics · Estadísticas
Card designer · Diseñador de cartas
- Designer-Overview · Visión general del diseñador
- Designer-Engine · Motor del diseñador
- Designer-Composition · Composición del diseñador
- Frame-Packs · Packs de marcos
- Designer-App-Layer · Capa de aplicación del diseñador
- Designer-UI · Interfaz del diseñador
- Card-Editor-Dialog · Diálogo Editar carta
Game table · Mesa de juego
- Game-Engine · Motor de la mesa
- Game-Table · Mesa de juego
- Online-Play · Juego en línea
- Friends-and-Messages · Amigos y mensajes
Mobile · Móvil
Frontend · Frontend
- Frontend-Architecture · Arquitectura del frontend
- State-Stores · Stores de estado
- Internationalization · Internacionalización
- Themes-and-Skins · Temas y skins
- Icons · Iconos
- Settings-and-Shell · Ajustes y shell
- Tutorials · Tutoriales
- Decklist-Panel · Panel de la lista del mazo
- Add-Card-and-Variants · Añadir carta y variantes
- Card-Search · Búsqueda de cartas
- Set-Browser · Explorador de sets
Reference · Referencia