mirror of
https://github.com/storytold/craft-anything.git
synced 2026-11-05 20:47:45 +01:00
f64ae3bf3c
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>
59 lines
2.7 KiB
Markdown
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.
|