Бриф исследования открытого кода (для авторов отчётов docs/research/*.md)
Цель владельца
Взять готовый код, алгоритмы и данные, чтобы не писать с нуля, но
так, чтобы весь продукт MOffice оставался под собственной
лицензией владельца. Код «вообще без лицензии» использовать
нельзя (это «все права защищены»), поэтому приоритеты такие (подробно —
docs/12-license-policy.md):
| Класс | Лицензии | Что значит для нас |
|---|---|---|
| 0 | CC0, Unlicense, 0BSD, WTFPL, Public Domain | берём без обязательств |
| 1 | MIT, BSD, ISC, Zlib, Apache-2.0, BSL-1.0, Unicode, PSF, OFL (шрифты), CC-BY-4.0 (данные/иконки) | берём; единственное обязательство — строка в «О программе → Лицензии» и файл NOTICE; можно менять, портировать на Rust, не публиковать правки |
| 2 | MPL-2.0, LGPL-2.1/3, EPL-2.0 | только по отдельному решению владельца; ищем замену из классов 0–1 |
| 3 | GPL, AGPL, SSPL, BUSL, Elastic, FSL, CC-BY-SA/NC, «source-available», водяные знаки в UI | запрещено и как зависимость, и как источник копирования (только «чистая комната») |
Данные, которые уже собраны (используй их, не перепроверяй всё заново)
docs/research/oss-verified.tsvи.json— проверено 2026-10-04 скриптомscripts/oss_verify.py: ~420 репозиториев (лицензия по ecosyste.ms/deps.dev или по тексту LICENSE, звёзды, дата последнего коммита, архивность, язык) и ~220 крейтов Rust (точное SPDX-выражение с crates.io, загрузки, версия). Колонкаclass: 0/1/2/3, 9 = проверить вручную. Для своей области делайgrep -P "^<area>\t"или фильтруй JSON.- Неглубокие клоны для чтения кода (только чтение, ничего не менять):
/private/tmp/claude-501/-Users-amoros-MeridianOffice-/40d8f24c-fbfc-4943-a28d-8a3d2c115276/scratchpad/oss-src/(папкиowner_repo): IronCalc, libmypaint, mypaint-brushes, Pinta, rustybuzz, parley, onenote.rs, jackcess, SheetJS/ssf, formulajs, ocrs, rust-rrule, spellbook, ink-stroke-modeler, velopack, y-crdt, hyphenation, krilla, ReX, xcap, pdfium-render, lopdf, mail-parser, pimalaya/core, quickjs-ng, rquickjs, SARibbon, Qt-ADS, draw.io (толькоsrc/main/webapp/{stencils,js/diagramly/sidebar,templates}), Univer (packages/engine-formula), typst (целиком), LibreOffice/dictionaries (ru_RU, en, de, uk_UA, fr_FR, be_BY). - Уже установленные факты (проверены по коду/файлам 2026-10-04):
- IronCalc (MIT OR Apache-2.0): 496 функций в
base/src/functions/mod.rs, крейтыbase,xlsx(import/export),bindings. - Univer (Apache-2.0): 502 реализации функций в
packages/engine-formula/src/functions/*. - formulajs (MIT): 411 экспортируемых функций Excel на JS.
- libmypaint (ISC): ≈5,4 тыс. строк C; mypaint-brushes (CC0): 196 кистей (наборы classic, deevad, Dieterle, experimental, kaerhon_v1, ramon, tanda).
- Pinta (MIT): 37 эффектов, 9 коррекций, 28 инструментов; НО логотип и
иконки Paint.NET — CC BY-NC-ND 2.5 (файл
license-pdn.txt) → иконки не брать, код можно. - draw.io (Apache-2.0): у трафаретов и наборов иконок отдельный
stencils/LICENSE— запрет использования в продуктах Atlassian; иконки вендоров (AWS, Azure, GCP, Cisco…) — товарные знаки с собственными условиями. - spellbook и onenote.rs — MPL-2.0 (класс 2); Qt-Advanced-Docking-System — LGPL-2.1 (класс 2); SARibbon — MIT.
- Словари LibreOffice: ru_RU (основной) — BSD-подобная; ru_RU тезаурус — LGPL-2.1; ru Lightproof — MPL-1.1/GPL/LGPL; en_US/en_CA/en_AU (SCOWL) — BSD-подобная + public domain; en_GB — LGPL; de (frami) — GPLv2/GPLv3/OASIS; uk_UA — MPL-1.1 (переносы — GPL); be_BY — CC BY-SA 4.0 или LGPLv3.
- typst (Apache-2.0): раскладка формул в
crates/typst-layout/src/math/*(fraction, radical, scripts, accent, fenced…).
- IronCalc (MIT OR Apache-2.0): 496 функций в
- Собственный код владельца (уже под его лицензией — лучший источник):
- PasswordSafe (Rust, без внешней лицензии):
passwordsafe-core(Argon2id + AES-256-GCM, защищённая память, TOTP, формат хранилища, ≈4,8 тыс. строк),passwordsafe-sync(E2EE-синхронизация WebDAV/S3),passwordsafe-daemon(фоновый IPC-сервис),passwordsafe-cloud(эталонный HTTP API хранилища + авторизация устройств),passwordsafe-autotype(Windows UIA + macOS Accessibility). - ScreenPrompt (MIT, владелец): захват экрана и звука
(
native/windows/src/capture.rs,capture_backend.rs, recorder). - FlyType (MIT, владелец): голосовой ввод онлайн/офлайн (крейты
flytype-core/ffi/protocol, сайдкары расстановки пунктуации и конвертации, аккаунт и Hub). - Formulник/AXEL (на сервере sagr): OCR счетов, извлечение таблиц из PDF, проверка формул.
- PasswordSafe (Rust, без внешней лицензии):
Требования к отчёту
- Язык — русский; идентификаторы, имена пакетов — латиницей. Markdown, таблицы.
- Сначала создай файл со скелетом всех разделов, затем заполняй раздел за разделом (Edit/дозапись), чтобы при обрыве сессии сохранился частичный результат.
- Для каждого кандидата: ссылка, лицензия (SPDX) и класс 0–3,
звёзды/загрузки, дата последнего коммита, язык, что даёт MOffice
(модуль/приложение из
docs/00-foundation.md), стратегия: adopt (зависимость как есть) / fork (копия в наш репозиторий с правками) / port (переписать на Rust с сохранением уведомления) / reference (только изучить; писать самим) / avoid (класс 3 или неподходящее), что остаётся писать самим, риски, оценка экономии в чел.-мес. противdocs/08-roadmap.md. - Отдельно — «Запрещено» (класс 3) с заменами и «Требует решения владельца» (класс 2) с альтернативами класса 0–1.
- Проверять дополнительно (WebFetch/WebSearch) только то, чего нет в
oss-verified.tsv, и помечать «(проверено 2026-10-04)» или «(не проверено)». Не делать больше ~40 веб-запросов. - Не создавать других файлов, кроме своего отчёта. Итог мне — 6–10 строк.