Files
craft-anything/docs/licences.md
T
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

2.7 KiB

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: 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

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 from about.toml and the template about.hbs:

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 and ATTRIBUTION.md, which ship alongside it.