Observar
4
0
Fork
Você já fez o fork de craft-libs
0
Web IDE
espelhamento de https://github.com/storytold/craft-libs.git sincronizado 2026-10-26 04:24:26 +00:00
Rust libraries for the Craft Apps
  • Rust 97.9%
  • Max 1.8%
  • Python 0.2%
Encontrar um arquivo
Arquivos do repositório (último commit primeiro)
Nome de arquivo Última mensagem de commit Última data de commit
skylar taylor-barrick 9ff719499d
Cover ZIP drive-prefix rejection and standalone update helper ownership (#335)
* test(update): cover ZIP drive prefixes and standalone helper ownership

* test(update): synchronize standalone launcher replacement regression

* test(update): assert standalone updates select portable data paths

* Supply pinned fonts throughout instrumented coverage

* Make development-build regression independent of test runner location

* Pin coverage workflow with immutable nested actions

* Use reviewed optional-font coverage setup

* ci: restore craft-common-actions tracking main
2026-10-25 23:41:12 -04:00
.github Cover ZIP drive-prefix rejection and standalone update helper ownership (#335) 2026-10-25 23:41:12 -04:00
crates Cover ZIP drive-prefix rejection and standalone update helper ownership (#335) 2026-10-25 23:41:12 -04:00
docs Merge commit '819fd27f00' into docking-native-ime 2026-10-26 03:15:20 +00:00
licenses craft-ui: interface fonts, text direction, IME composer, localized widgets and screen testing 2026-10-25 19:08:59 +00:00
scripts prepress: transparency flattener (flatten feature) (#194) 2026-10-24 16:15:41 -04:00
vendor prepress: transparency flattener (flatten feature) (#194) 2026-10-24 16:15:41 -04:00
.coderabbit.yaml Skip CodeRabbit reviews on Dependabot PRs (#195) 2026-10-20 11:41:43 -04:00
.gitattributes plate-test: keep short arrays and objects on one line in the scene files 2026-10-20 03:51:04 +00:00
.gitignore fix(hayro-syntax): read full /W[0] xref entry type width (#241) 2026-10-23 11:14:16 -04:00
AGENTS.md Use chrono instead of hand-rolled UTC conversion (#219) 2026-10-23 11:17:51 -04:00
ATTRIBUTION.md Merge branch 'lang-2-ui' into lang-3-fonts 2026-10-25 19:42:34 +00:00
Cargo.lock Merge branch 'lang-2-ui' into lang-3-fonts 2026-10-26 03:14:35 +00:00
Cargo.toml Merge branch 'lang-2-ui' into lang-3-fonts 2026-10-26 03:14:35 +00:00
CLAUDE.md Rust workspace and MIT OR Apache-2.0 license (#1) 2026-10-09 12:02:40 -04:00
clippy.toml Rust workspace and MIT OR Apache-2.0 license (#1) 2026-10-09 12:02:40 -04:00
LICENSE-APACHE Rust workspace and MIT OR Apache-2.0 license (#1) 2026-10-09 12:02:40 -04:00
LICENSE-MIT Rust workspace and MIT OR Apache-2.0 license (#1) 2026-10-09 12:02:40 -04:00
NOTICE Merge pull request #337 from aiongg/lang-1-text 2026-10-25 23:08:26 -04:00
README.md Merge branch 'lang-2-ui' into lang-3-fonts 2026-10-26 03:14:35 +00:00
rustfmt.toml Rust workspace and MIT OR Apache-2.0 license (#1) 2026-10-09 12:02:40 -04:00
sonar-project.properties Share browser download resource ownership (#226) 2026-10-22 20:49:41 +02:00

Craft App Libraries

Scanned by SonarCloud

This repo contains libraries used by the various Craft Apps. It's a Rust monorepo workspace, and the libraries can be included by any Craft Apps that need them.

In the future this may grow to include non-Rust library code.

If any libraries grow beyond Craft App usage, eg. RAW format support, they may be promoted out and into their own libraries for the broader ecosystem to take advantage of.

Layout

A Cargo workspace (edition 2024, resolver 3). Each library is a crate under crates/<name>, named craft-<name>, with version, edition, license and repository inherited from the workspace (license.workspace = true, and so on) and [lints] workspace = true. Register each crate in [workspace.dependencies] in the root Cargo.toml.

Apps depend on a crate by git:

craft-<name> = { git = "https://github.com/storytold/craft-libs", rev = "<commit>" }

Libraries

  • craft-platform: optional native dialog lifecycle, Linux/BSD desktop appearance observation and browser download ownership; application policy stays in the apps.

  • craft-ai-core: the data model and contract for AI in the Craft Apps (connections, models, tools, requests, jobs, consent, history, route spec). Pure, no I/O, wasm-safe. Contract in docs/ai-shared-layer.md.

  • craft-pdf: independently optional PDF parsing, interpretation, rasterization and guarded authoring. Apps retain layout, fonts, editing and export policy; writer-only consumers do not enable the shared reader.

  • craft-atomic: Crash-safe atomic file writing and replacement with same-directory staging, directory fsync, Apple F_FULLFSYNC fallback, transient lock backoff, and fault injection for the Craft suite.

  • craft-cms: pure-Rust ICC v2/v4 colour management: profile parsing and writing, transforms, rendering intents, black point compensation, soft proofing, gamut checks, 3D LUTs and built-in profiles (sRGB, Display P3, synthetic coated CMYK and others).

  • craft-docpath: decides whether a path or file: URL stored in a document may be opened. Paths stored in documents are followed only when they are local or on the document's own network share; other network paths, device paths and non-file URLs are refused.

  • craft-font-catalog: the installed fonts on every platform (font folders, fontconfig and Flatpak host folders, CoreText, DirectWrite, the font store), lookup by family, style, localized, legacy, full and PostScript names, family loads shared between threads, and rescans when fonts are installed or removed.

  • craft-font-manager: Craft Font Manager as a library: search and filters over the Google Fonts index, installed fonts by family, the font store interface, and (egui feature) FontsPanel, the whole interface as one panel for the launcher's Fonts tab and the standalone app.

  • craft-font-store: the suite's font store: the pinned Google Fonts and Noto indexes plus indexes the user adds (never curated), exact lookup by family and style or PostScript name, and installs from each source's URLs (jsDelivr, then raw GitHub) checked by size, sha256 and parsing, with the licence, a manifest, and removal. Off until the user turns downloading on; agents can't.

  • craft-fonts-build: embeds the optional craft-fonts faces from an app's build.rs (CRAFT_FONTS_DIR, CRAFT_FONTS_REQUIRED, script filters) as a table of EmbeddedFaces. No dependencies; the app picks the faces.

  • craft-i18n: translations over the embedded craft-i18n catalogs: lookup with fallback (pt-br → pt → English), plurals, language names, the system locale and a pseudo locale. The catalogs stay a fully optional build input; apps keep tl! and their language setting.

  • craft-jpeg: clean-room decoder for 12-bit and arithmetic-coded JPEG (T.81 SOF0/SOF1 at 12 bits, SOF9, SOF10), from PhotoCraft, and a frame probe for routing. Metadata stays in each app.

  • craft-keymap: keyboard bindings: chords and their text forms, scopes, conflicts, user overrides stored through craft-settings and import of other applications' shortcut sets. Command catalogs, file readers and the shortcut editor UI stay in each app.

  • craft-media: bit-level I/O (bitstream), clean-room MP4/MOV (isobmff) and Matroska/WebM (matroska) demuxers and muxers, from FilmCraft, and an ISO BMFF box reader. Containers only; codecs stay in each app.

  • craft-menu: an app's menus as a macOS menu bar: the Mac layout (app menu, Window, Help, system-key clashes), a platform backend trait, and key equivalents fed back to egui as the input egui-winit would have made. Commands and their enabled state stay in each app.

  • craft-print: PDF submission to CUPS and Windows, printer discovery, duplex/copies/colour and driver preferences. PDF generation stays in each app.

  • craft-quit: native macOS quit, egui close handling and an optional app menu. Unsaved-document decisions and save prompts stay in each app.

  • craft-settings: config.toml settings storage for every app: platform folders, portable mode and overrides, atomic saves while running, backup, damaged-file recovery and schema migrations. Policy in docs/settings-storage.md.

  • craft-text: text processing below the composer. Its hyphen module finds hyphenation points, with a bundled US English dictionary and patterns and optional hypher patterns for 47 more languages (one cargo feature each).

  • craft-ui: SVG catalogs, icon buttons, tabs, pane controls, transactional docking, print settings and theme helpers for egui frontends; assets, themes, localization and command handling stay in each app. Requires Rust 1.95 or later.

  • Shared UI component audit: source inventory, extraction priorities and compatibility boundaries across the Craft suite.

  • Theme infrastructure: eight-app comparison and the small shared widget-state styling boundary.

  • Panel docking: validated panel moves, floating groups, workspace adapters and an optional egui docking surface.

License and credits

craft-libs is dual-licensed under MIT or Apache-2.0, at your option. Copyright (c) 2026 ArtCraft Team and the craft-libs contributors. Required notices are in NOTICE.

Bundled fonts, icons, images and other assets keep their own open licenses; each one is listed with its author, source and license in ATTRIBUTION.md.