mirror of
https://github.com/storytold/craft-libs.git
synced 2026-11-12 10:03:51 +00:00
* craft-raw: the file-format layer of camera raw files, with DNG and CRW A new crate for #587 and #778: bytes in, the sensor data out as a neutral RawImage (samples, CFA, levels, active area, crop, orientation, colour tags, opcode lists, profile tables), and back for DNG. One Cargo feature per format: dng (read and write), jxl (JPEG XL DNG), crw (through craft-crw). The base is LightCraft's crates/raw at 5ff567a4: dng, dngwrite, tiffraw, unpack, ljpeg, jxl, semantic, preview, the parsing half of opcodes, profile and gaintable, the model and probe. Demosaicing and everything after it stay with the develop pipeline. Ported from PhotoCraft's and FilmCraft's DNG readers, each with a test: the default crop's per-tag defaults, an unusable crop falling back to the active area, non-finite white levels, the white default of a linearized image, the AsShotWhiteXY range, 8-bit-only lossy JPEG, lossy tiles that must cover their part of the image, and the CinemaDNG frame tags. * craft-raw: Hasselblad 3FR and FFF (feature hasselblad) RawFormat::CfaTiff decodes: the DNG-layout reader plus what these files add. Uncompressed data or Hasselblad's lossless JPEG (selection value 8), RGGB when no CFAPattern is stated, an FFF's colour matrix from the 3FR header it embeds, and the 8-bit RGB preview handed on as a baseline TIFF. Moved from LightCraft's vendor/hasselblad.rs at 5ff567a4 with its tests. Ported from PhotoCraft's reader: four BlackLevel values without a BlackLevelRepeatDim are one per CFA site in a file that is not a DNG. * craft-raw: Minolta MRW, Epson ERF, Mamiya MEF and Kodak DCS520C Four formats only LightCraft decodes, one feature each (mrw, erf, mef, kodak), moved from its vendor modules at 5ff567a4 with their tests; the MRW block container comes from lightcraft-meta. src/shared.rs holds the level helpers the maker decoders share. ERF and MEF state no white balance: the estimate LightCraft made from the preview is develop-side work, so wb_multipliers is None for them here. * craft-raw: shared scan budget for tagged previews, tile-sized lossy JPEG budget, bound on Deflate tile padding Ported from storytold/lightcraft#3695. Candidate preview ranges are deduplicated and charged to one byte budget and one header-walk budget; a lossy JPEG decoded for a tile may hold no more samples than the tile rounded up to whole MCUs (and never more than Limits::max_lossy_tile_samples); a Deflate chunk whose nominal size is mostly padding outside the image is refused before it is inflated. * craft-raw: lossless JPEG sample bound per referenced byte; previews larger than the file are passed over Ported from storytold/lightcraft#3910 (the parts whose code is in craft-raw today). check_image refuses a lossless JPEG image that declares more than 32 samples per referenced byte, counted once per chunk that points at the bytes so identical tiles stored once still decode. The Hasselblad RGB preview search passes over an image whose pixel bytes exceed the file and still takes a smaller complete one. * craft-raw: test for the Deflate padding bound * craft-raw: Pentax PEF and Samsung SRW Moved from LightCraft crates/raw (vendor/pef.rs, vendor/srw.rs) at 5ff567a4. The Huffman difference decoder and bit reader that PEF shares with the Nikon, Panasonic and Sony codings become the huffman module. --------- Co-authored-by: radialmonster <radial@gmail.com>
279 lines
19 KiB
Plaintext
279 lines
19 KiB
Plaintext
craft-libs
|
|
Copyright (c) 2026 ArtCraft Team and the craft-libs contributors.
|
|
Licensed under the MIT License or the Apache License, Version 2.0, at your option
|
|
(LICENSE-MIT, LICENSE-APACHE).
|
|
|
|
Third-party material
|
|
|
|
This product bundles third-party material under its own licenses, listed below. The per-file
|
|
list (author, source, license) is in ATTRIBUTION.md.
|
|
|
|
crates/cms/profiles/photocraft-coated-cmyk.icc: CC0-1.0, generated by crates/cms (see below).
|
|
crates/cms/profiles/craft-coated-fogra39.icc: CC0-1.0, generated by crates/cms from the FOGRA39
|
|
characterisation data below.
|
|
crates/cms/tests/data/FOGRA39.txt: FOGRA39 characterisation data, distributed unmodified.
|
|
Source: Fogra (Fogra Forschungsinstitut für Medientechnologien e.V.), www.fogra.org, from
|
|
https://fogra.org/fileadmin/files/7_downloads/Charakterisierungsdaten/FOGRA39_to_FOGRA60_v2.zip
|
|
Fogra's terms: "Free use and redistribution of the Fogra characterisation data is permitted,
|
|
including redistribution as part of commercial and non-commercial software, provided that
|
|
the data are distributed unmodified and Fogra is identified as the source. The designation
|
|
FOGRAxx may be used solely to identify the respective reference data. Such use does not
|
|
imply certification, approval or endorsement by Fogra."
|
|
crates/text/assets/hyphen/en-us.dic: public domain, derived from the Moby Hyphenator II list by
|
|
Grady Ward (Project Gutenberg eBook #3204).
|
|
crates/proof/data/en-words.dic: public domain, the words of the Moby Hyphenator II list by Grady
|
|
Ward (Project Gutenberg eBook #3204), without its break points.
|
|
crates/proof/data/en-extra.txt: MIT OR Apache-2.0, WordCraft contributors' own list of modern
|
|
English words (a copy of craft-i18n's language-data/en-us/en-extra.txt).
|
|
craft-proof Language data, embedded at build time from craft-i18n's language-data/ when
|
|
CRAFT_I18N_DIR is set (CRAFT_PROOF_EMBED picks the locales; by default English and the German,
|
|
Polish, Portuguese, Italian and Russian data). Each file keeps its licence header; the
|
|
licences are listed in craft-i18n's ATTRIBUTION.md, and a pattern file's notice ships with any
|
|
application that embeds it. The Portuguese hyphenation patterns (language-data/pt/
|
|
hyphenation.pat, hyph-utf8 hyph-pt 1.4) are under the BSD 3-clause licence:
|
|
Copyright (C) 1987, 1994, 1996, 2015 Pedro J. de Rezende, 1996, 2015 J. Joao Dias Almeida,
|
|
2024 Leonardo Araujo and Aline Benevides.
|
|
Redistribution and use in source and binary forms, with or without modification, are
|
|
permitted provided that the following conditions are met:
|
|
* Redistributions of source code must retain the above copyright notice, this list of
|
|
conditions and the following disclaimer.
|
|
* Redistributions in binary form must reproduce the above copyright notice, this list of
|
|
conditions and the following disclaimer in the documentation and/or other materials
|
|
provided with the distribution.
|
|
* Neither the name of the University of Campinas, of the University of Minho nor the names of
|
|
its contributors may be used to endorse or promote products derived from this software
|
|
without specific prior written permission.
|
|
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
|
|
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
|
FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL PEDRO J. DE REZENDE OR J.JOAO
|
|
DIAS ALMEIDA BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
|
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
|
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
|
OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
POSSIBILITY OF SUCH DAMAGE.
|
|
crates/text/assets/hyphen/en-us.pat: CC0-1.0, trained from en-us.dic by DesignCraft's trainer.
|
|
Hyphenation patterns for other languages, embedded through the hypher crate only when the
|
|
matching craft-text feature is enabled (none are by default). They come from hyph-utf8,
|
|
https://github.com/hyphenation/tex-hyphen, as packaged in https://github.com/typst/hypher
|
|
(patterns/). Each file is under the license stated in its header: LPPL, MIT, BSD-3-Clause, the
|
|
Unlicense, a notice permitting any use, or a choice of licenses that includes one of these. An
|
|
application that enables a language ships that file's copyright and license notice. The
|
|
exception is Slovak (hyph-sk.tex, Copyright (C) 1992 Jana Chlebíková), under the GNU General
|
|
Public License, version 2 or later (SPDX: GPL-2.0-or-later). craft-text asks for it through the
|
|
feature "slovak-gpl", which "all-languages" does not include; an application that enables it
|
|
ships GPL-licensed data. Cargo unifies features, so another dependency that enables hypher's
|
|
"slovak" feature (hypher's default features do) embeds the same data; a build that must exclude
|
|
it checks its dependency graph. The Spanish patterns (feature "spanish") are hyph-es.tex 5.0.
|
|
Copyright (C) 1993, 1997 Javier Bezos, 2001-2019 Javier Bezos, CervanTeX. MIT License:
|
|
Permission is hereby granted, free of charge, to any person obtaining a copy of this software
|
|
and associated documentation files (the "Software"), to deal in the Software without
|
|
restriction, including without limitation the rights to use, copy, modify, merge, publish,
|
|
distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the
|
|
Software is furnished to do so, subject to the following conditions: The above copyright notice
|
|
and this permission notice shall be included in all copies or substantial portions of the
|
|
Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
|
INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
|
|
AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
|
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
- Word-break dictionaries and LSTM models for Thai, Lao, Khmer and Burmese, embedded through the
|
|
icu_segmenter_data crate only when craft-text's "thai", "lao", "khmer" or "burmese" feature is
|
|
enabled (none are by default). From ICU4X, https://github.com/unicode-org/icu4x.
|
|
Copyright (c) 2020-2024 Unicode, Inc. Unicode License v3 (SPDX: Unicode-3.0); portions adapted
|
|
from ICU4C, (c) 1995-2016 International Business Machines Corporation and others. An
|
|
application that enables one of these features ships the Unicode License v3 copyright and
|
|
permission notice, https://www.unicode.org/license.txt.
|
|
|
|
The optional PDF writer bundles four CC0 ICC profiles by Clinton Ingram. See ATTRIBUTION.md for per-file sources and hashes.
|
|
|
|
Source provenance
|
|
|
|
crates/raw (craft-raw) is moved from LightCraft, with behaviour ported from two other readers:
|
|
- LightCraft, crates/raw (src/lib.rs, dng.rs, dngwrite.rs, tiffraw.rs, unpack.rs, ljpeg.rs, jxl.rs,
|
|
opcodes.rs, profile.rs, gaintable.rs, semantic.rs, preview.rs, vendor/crw.rs, vendor/hasselblad.rs,
|
|
vendor.rs (shared level helpers), vendor/mrw.rs, vendor/erf.rs, vendor/mef.rs, vendor/kodak.rs, vendor/pef.rs,
|
|
vendor/srw.rs, tests/it/vendor_robust.rs and their tests) and crates/meta/src/mrw.rs (the MRW block container),
|
|
revision 5ff567a4a2e067bef1b6bce152c11e7f727ccbaf.
|
|
https://github.com/storytold/lightcraft
|
|
Copyright (c) 2026 ArtCraft Team and the LightCraft contributors.
|
|
- PhotoCraft, crates/raw/src/dng.rs, hasselblad.rs and tests/it/dng.rs (default-crop defaults,
|
|
white-level fallbacks, the 8-bit rule for lossy JPEG, Hasselblad's per-site black levels),
|
|
revision c1b22bdaae2a1359ba3d164eca4d4b0c7378b547.
|
|
https://github.com/storytold/photocraft
|
|
Copyright (c) 2026 ArtCraft Team and the PhotoCraft contributors.
|
|
- FilmCraft, crates/dng/src/lib.rs (the CinemaDNG frame tags and time code), revision
|
|
4bec22bd03bd1d995c9cf72e02a284f96d3d72cd.
|
|
https://github.com/storytold/filmcraft
|
|
Copyright (c) 2026 ArtCraft Team and the FilmCraft contributors.
|
|
The SVG icon preparation in crates/ui is adapted from:
|
|
- PhotoCraft, crates/ui-egui/src/icons.rs, revision e7a83ca342cdff568254f85f442b9cc8afb08066.
|
|
https://github.com/storytold/photocraft
|
|
Copyright (c) 2026 ArtCraft Team and the PhotoCraft contributors.
|
|
- VectorCraft, crates/ui-egui/src/icons.rs, revision 825d4fdb8b527c597855d273fb4bcc1971855b6a.
|
|
https://github.com/storytold/vectorcraft
|
|
Copyright (c) 2026 ArtCraft Team and the VectorCraft contributors.
|
|
The icon-button interaction/style boundary is adapted from PhotoCraft (above) and:
|
|
- PdfCraft, crates/ui-egui/src/icons.rs, revision f626db25cca2c89f8fa3f7e30d22bf59faea65ec.
|
|
https://github.com/storytold/pdfcraft
|
|
Copyright (c) 2026 ArtCraft Team and the PdfCraft contributors.
|
|
The tab fitting in crates/ui/src/tabs is adapted from PhotoCraft's tab_strip.rs (above).
|
|
Tab interaction adapters also use VectorCraft's dock.rs and floating.rs (above).
|
|
The pane sizing and resize boundaries in crates/ui/src/layout draw on:
|
|
- FilmCraft, crates/ui-egui/src/dock.rs, revision 7b6c134472287db4367fca80bcb498240ba36567.
|
|
https://github.com/storytold/filmcraft
|
|
Copyright (c) 2026 ArtCraft Team and the FilmCraft contributors.
|
|
- EffectCraft, crates/ui-egui/src/dock.rs, revision 2a460986ee7a4b32656a3d434849693904b486bc.
|
|
https://github.com/storytold/effectcraft
|
|
Copyright (c) 2026 ArtCraft Team and the EffectCraft contributors.
|
|
The widget-state styling in crates/ui/src/theme is adapted from VectorCraft (above),
|
|
crates/ui-egui/src/theme.rs, and:
|
|
- DesignCraft, crates/ui-egui/src/theme.rs, revision 66c7ce7e96ec286a091878cc2541ee8369aa79d6.
|
|
https://github.com/storytold/designcraft
|
|
Copyright (c) 2026 ArtCraft Team and the DesignCraft contributors.
|
|
The transactional panel model and drop-zone semantics in crates/ui/src/docking draw on the
|
|
FilmCraft/EffectCraft split, tab and accordion layouts and VectorCraft floating groups listed
|
|
above. The generic transaction validation, optional renderer and workspace-location helpers
|
|
are implemented here without dependencies on application engines or native window helpers.
|
|
The hyphenation code, data and generator in crates/text (src/hyphen/, assets/hyphen/ and
|
|
examples/hyphgen.rs) are adapted from:
|
|
- DesignCraft, crates/compose/src/hyphen/, crates/compose/examples/hyphgen.rs and
|
|
assets/hyphenation/, revision e161878e4c7744fa06f9a2eede8103cb4c296355 (above).
|
|
- WordCraft, crates/proof/src/hyphen.rs, revision e4b7d155f15a7784197ba34eeea0b54490d70eb2.
|
|
https://github.com/storytold/wordcraft
|
|
Copyright (c) 2026 ArtCraft Team and the WordCraft contributors.
|
|
All sources listed above are licensed MIT OR Apache-2.0. No icon artwork is copied here.
|
|
|
|
The PDF spooler in crates/print is extracted from:
|
|
- PdfCraft, crates/print/src/spool.rs, windows_print.ps1 and spooler tests,
|
|
revision 33c14e07cfd742a82bf03baa6b103c01008fa68c.
|
|
https://github.com/storytold/pdfcraft
|
|
Copyright (c) 2026 ArtCraft Team and the PdfCraft contributors.
|
|
Licensed MIT OR Apache-2.0. PDF composition and application code are not copied.
|
|
|
|
The Windows printer duplex-capability query and parser additionally draw on PdfCraft,
|
|
crates/print/src/spool.rs, revision fb97ce958dfe92b6762ce40615c7836551710139 (PR #1154), under the same licenses above.
|
|
|
|
The native Windows backend (crates/print/src/windows.rs, ticket.rs and the printer-list and
|
|
Windows spooler tests) is ported from PdfCraft's native printing work, which carries the
|
|
approach of PdfCraft PR #599 (Win32 printer list, Windows.Data.Pdf into the XPS print API, the
|
|
PrintTicket and its driver-paper preference):
|
|
- PdfCraft, crates/print/src/spool/windows.rs, spool.rs and tests.rs, branch
|
|
claude/native-windows-print-826c99 of PR #1132, revision a435117 (jcl-bit/printcraft).
|
|
https://github.com/storytold/pdfcraft
|
|
Copyright (c) 2026 ArtCraft Team and the PdfCraft contributors.
|
|
Licensed MIT OR Apache-2.0.
|
|
|
|
The menu layout and native-menu driver in crates/menu are extracted from:
|
|
- PhotoCraft, crates/ui-egui/src/native_menu.rs, revision 6f85054288a564f9fbbccb99268ffdb34e581584.
|
|
https://github.com/storytold/photocraft
|
|
Copyright (c) 2026 ArtCraft Team and the PhotoCraft contributors.
|
|
Licensed MIT OR Apache-2.0. PhotoCraft's menus, translations and command handling are not copied.
|
|
The macOS backend in crates/menu/src/mac.rs is adapted from:
|
|
- PhotoCraft, apps/photocraft/src/mac_menu.rs, revision 6f85054288a564f9fbbccb99268ffdb34e581584.
|
|
https://github.com/storytold/photocraft
|
|
Copyright (c) 2026 ArtCraft Team and the PhotoCraft contributors.
|
|
- VectorCraft, apps/vectorcraft/src/mac_menu.rs, revision 0d0ea352df99044589a7ce0efc7004f7a5b6b7c0
|
|
(closing an open menu on a click or Escape, and its tests, in crates/menu/src/driver.rs).
|
|
https://github.com/storytold/vectorcraft
|
|
Copyright (c) 2026 ArtCraft Team and the VectorCraft contributors.
|
|
Both licensed MIT OR Apache-2.0.
|
|
The egui menu bar in crates/menu/src/bar (its menu navigation, scrolling, submenu hover
|
|
intent, keyboard access and mnemonics, and their tests) is ported from:
|
|
- PhotoCraft, crates/ui-egui/src/menu_nav.rs and menu_nav_tests.rs, menu_keys.rs and
|
|
menu_keys_tests.rs, and the menu bar in crates/ui-egui/src/menus.rs, revision
|
|
c36e46c3873ee39f299cc50a3dcd28494c78366d.
|
|
https://github.com/storytold/photocraft
|
|
Copyright (c) 2026 ArtCraft Team and the PhotoCraft contributors, among them aiongg, artman67,
|
|
BFlat, Brandon Thomas, Brennan Stehling, Daniel Lošák, David Mann, Fabio Lissi, FredApps,
|
|
Higgs32584, itsF4LCON, jason4short, Korg1ch, MarekSpodBiedry and Nigel Ihza Firdausy.
|
|
Licensed MIT OR Apache-2.0. PhotoCraft's menus, theme and Help search are not copied.
|
|
|
|
The colour management module in crates/cms is extracted from:
|
|
- PhotoCraft, crates/cms, revision b3222ee8e7e6bcb4799c37f904c595f20f9baf5e.
|
|
https://github.com/storytold/photocraft
|
|
Copyright (c) 2026 ArtCraft Team and the PhotoCraft contributors.
|
|
Licensed MIT OR Apache-2.0. Its generated ICC profile is dedicated to the public domain
|
|
(CC0-1.0); see ATTRIBUTION.md.
|
|
|
|
Optional PDF writer
|
|
|
|
Krilla 0.8.2 (https://github.com/LaurenzV/krilla), MIT OR Apache-2.0.
|
|
Upstream licence texts are retained in licenses/pdf-writer.
|
|
The optional writer embeds Compact ICC Profiles by Clinton Ingram
|
|
(https://github.com/saucecontrol/Compact-ICC-Profiles), under CC0-1.0.
|
|
See licenses/pdf-writer/LICENSE-ICC.txt and ATTRIBUTION.md for sources and hashes.
|
|
The writer adds no font files. Its four existing ICC profiles are retained under vendor/krilla/icc.
|
|
|
|
Krilla is vendored with the local patches in vendor/krilla/patches; see vendor/krilla/README.craft.md
|
|
and vendor/krilla/SOURCE.json. Its upstream MIT/Apache-2.0 licences and CC0 profiles are unchanged.
|
|
|
|
Optional PDF reader
|
|
|
|
Hayro 0.7.1, hayro-interpret 0.7.0, hayro-syntax 0.7.2, hayro-jbig2 0.3.0, hayro-cmap 0.1.0
|
|
and hayro-postscript 0.1.0 (https://github.com/LaurenzV/hayro), MIT OR Apache-2.0, retain their
|
|
upstream licence files. The first five are patched sources transferred from PdfCraft
|
|
(https://github.com/storytold/pdfcraft): hayro-cmap from revision
|
|
a2ec27b4775f53c40cad3456936d9406611e3a8d, the others from revision
|
|
ec0a965074f376a5bf610435948e4e5184bf3299. hayro-postscript is the crates.io 0.1.0 package
|
|
(upstream revision a2354aebaf86f5ab13e5fd6b6b0521306488bf9d) with one local patch.
|
|
See vendor/README.craft-reader.md and each crate's SOURCE.json for provenance and local changes.
|
|
The hayro-interpret plate mode (separations, overprint and output-intent simulation) is ported
|
|
from PdfCraft pull request #2770 by Guillem Hermida, commit
|
|
6fcf2a4aca29e943e28cb69017ff8f87d00656c6 (https://github.com/storytold/pdfcraft/pull/2770),
|
|
MIT OR Apache-2.0; crates/pdf/tests/plates.rs and tests/support/synthetic_icc.rs adapt its tests.
|
|
Knockout transparency groups in hayro-interpret and hayro are ported from PdfCraft pull request
|
|
#2974 by mtlcl410, commit bae69819594a6385a027fec1f67e6b3c36c259b4
|
|
(https://github.com/storytold/pdfcraft/pull/2974), MIT OR Apache-2.0;
|
|
crates/pdf/tests/knockout.rs adapts its test.
|
|
The reader retains the existing Foxit/PDFium standard-14 font assets (BSD-3-Clause),
|
|
Compact ICC Profiles by Clinton Ingram (CC0-1.0), and dependency CMaps (BSD-3-Clause).
|
|
Their licences and per-file hashes are retained in vendor/hayro-interpret/assets,
|
|
vendor/hayro-cmap/assets, licenses/pdf-backend and ATTRIBUTION.md. These are existing reader dependency assets;
|
|
applications retain their own document-font selection and licensing policy.
|
|
|
|
linesweeper
|
|
|
|
linesweeper 0.5.0 (https://crates.io/crates/linesweeper/0.5.0), MIT OR Apache-2.0, is stored in
|
|
vendor/linesweeper with its upstream license files and no file changed. Its manifest names Joe Neeman
|
|
as author, and its LICENSE-MIT reads "Copyright (c) 2018 Raph Levien". See
|
|
vendor/linesweeper/README.craft.md and vendor/linesweeper/SOURCE.json for provenance and the files
|
|
left out.
|
|
|
|
Platform lifecycle source provenance
|
|
|
|
The optional crates/platform services adapt the preserved local platform candidate
|
|
9b135779a1e7136438a217c18afe1693ea23f1ab (dialog outcomes and browser resource ownership),
|
|
and current application implementations:
|
|
- PdfCraft crates/platform/src/desktop_theme.rs, a8cd797a917b1007544575c7280c9a0ce6a17e8f.
|
|
- CADCraft apps/cadcraft/src/desktop_theme.rs, 0cc66ad3066e71f2c3d4cacb7de905e79ba1c95b.
|
|
- ArtCraft Launcher apps/artcraft-launcher/src/system_theme.rs, f1676dfb41c226b5be490721f486ee6427419d80.
|
|
- Earlier PhotoCraft, FilmCraft and EffectCraft appearance services at revisions
|
|
0c72d95425dece90ef9a1cceb49e3315c96e22d5, 794a25fc9ed2e3f6fab51a254625bc9b99a88015
|
|
and 1b4d47f34f2b1c1b4a89f4b7348889def8fd648b respectively.
|
|
Sources: https://github.com/storytold/pdfcraft, https://github.com/storytold/cadcraft,
|
|
https://github.com/storytold/craft-launcher, https://github.com/storytold/photocraft,
|
|
https://github.com/storytold/filmcraft, https://github.com/storytold/effectcraft.
|
|
Copyright (c) 2026 ArtCraft Team and the respective application and craft-libs contributors.
|
|
All adapted source is licensed MIT OR Apache-2.0.
|
|
|
|
The Canon CRW decoder in crates/crw (src/lib.rs, src/tables.rs, src/tests.rs, tests/) and its
|
|
derivation record (crates/crw/clean-room/) come from:
|
|
- LightCraft, crates/raw/src/vendor/crw.rs, crates/raw/src/vendor/crw_tables.rs,
|
|
crates/raw/tests/crw_oracle.rs, crates/raw/tests/it/vendor_robust.rs and clean-room/crw/,
|
|
https://github.com/storytold/lightcraft/pull/3021, revision 6ca439b5155820d2befeacd81ec0c6a80b2bd3bc
|
|
(decoder ported at 70c755e42a65661401142819278d51b0c5977f7f; the record is identical at both).
|
|
https://github.com/storytold/lightcraft
|
|
Copyright (c) 2026 ArtCraft Team and the LightCraft contributors.
|
|
Its white-level plateau estimate (saturation_plateau) is LightCraft's vendor::white_from_data at the
|
|
same revision. The CRW compression was derived clean-room from CC0 sample files and the
|
|
maintainer's own photographs by black-box comparison with a reference decoder's command-line
|
|
output; no raw-decoder source was consulted (crates/crw/clean-room/sources.md).
|
|
|
|
crates/audio/src/alac/ (the ALAC decoder and encoder) is ported from Apple's ALAC reference
|
|
implementation, https://github.com/macosforge/alac at c38887c5c5e64a4b31108733bd79ca9b2496d987
|
|
(codec/), Copyright (c) 2011 Apple Inc., licensed under the Apache License, Version 2.0
|
|
(LICENSE-APACHE). The files are modified: translated to Rust, with bounds checks on hostile input,
|
|
wrapping integer arithmetic, the unrolled predictor and per-width matrix routines folded into one,
|
|
and the average bit rate filled in. Those files are Apache-2.0 only.
|