Files
Brandon Thomas f64ae3bf3c Craft Anything
A native, pure-Rust app that shows anyone how a piece of software works, with
evidence-backed answers, then helps them rebuild it. It ships a desktop app, a
CLI and an MCP server, all driven by one engine.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 10:52:14 -04:00

59 lines
2.7 KiB
Markdown

# Licences
Craft Anything is MIT OR Apache-2.0. This page says what we may depend on, how it is checked,
and how the third-party licence bundle for a release is made.
## Policy
- **Linked or bundled code must be permissive.** Rust crates, fonts, icons and any other
material compiled into or shipped with the app use one of the licences allowed in
[`deny.toml`](../deny.toml): MIT, Apache-2.0 (also WITH LLVM-exception), BSD-2/3-Clause, ISC,
Zlib, 0BSD, Unicode-3.0, BSL-1.0, CDLA-Permissive-2.0, OFL-1.1 and the Ubuntu Font Licence
(fonts only).
- **MPL-2.0 only by name.** It is file-level copyleft, so it is allowed per crate, never broadly:
today only `option-ext` (via `dirs`), used unmodified. Dual-licensed crates such
as `self_cell` and `r-efi` pass through their permissive option.
- **We never link or bundle copyleft code** (GPL, LGPL, AGPL, SSPL, EUPL, CC-BY-SA and the like).
- **Programs we only run may have any licence.** External programs started as separate
processes (Ghidra, rizin, tshark, Frida, JADX, Apktool, rtl_433, adb, a browser, an agent
CLI…) are not linked or shipped by us. The person installs them, or we download the
upstream release on request; we never copy their code into ours.
- **Avoid patent-encumbered codecs.** Don't add encoders for H.264/AVC, HEVC/H.265 or AAC. Prefer
AV1, VP9, Opus, FLAC, PNG and WebP; to decode those formats, use the operating system's codecs.
### Known traps
| Thing | Problem |
|---|---|
| `dssim` (image similarity) | AGPL-3.0. Don't use it; pick a permissive metric or write our own. |
| Hunyuan3D models | Licence excludes the EU, UK and South Korea. Don't make it a default or bundle it. |
| FLUX.1 [dev] weights | Non-commercial licence. Only through a hosted API whose terms allow our use. |
Model weights and hosted APIs have their own terms; read them before adding one as a default.
## Checking
```sh
cargo install cargo-deny --locked # once
cargo xtask licenses # = cargo deny check licenses
cargo deny check # also advisories, bans (no wildcard versions) and sources
```
A new licence or crate exception needs a line in `deny.toml` with a reason, and a line here if
it changes the policy.
## Release bundle
Releases ship a third-party licence file generated by
[cargo-about](https://github.com/EmbarkStudios/cargo-about) from [`about.toml`](../about.toml)
and the template [`about.hbs`](../about.hbs):
```sh
cargo install cargo-about --locked # once
cargo about generate about.hbs -o THIRD-PARTY-LICENSES.html
```
Keep `accepted` in `about.toml` in step with `deny.toml`. Fonts and icons from `assets/` and
egui's built-in fonts are listed in [`NOTICE`](../NOTICE) and [`ATTRIBUTION.md`](../ATTRIBUTION.md),
which ship alongside it.