На чём написано
C++20 без фреймворков, PHP-портал, Qt6-терминал, свой формат знаний и почему именно так.
Движок
C++20, без фреймворков. Собирается CMake, работает одним процессом, отвечает по HTTP.
Сторонних библиотек минимум: HTTP-сервер и разбор JSON. Ни Python, ни PyTorch, ни ONNX — ничего
из этого в движке нет и не появится: язык выбирает хозяин проекта, и контур один.
Почему так. Движок читает кубы знаний отображением в память: 8,9 ГБ книг доступны без базы
данных, без индексации на лету и без сетевых походов. На управляемом языке это стоило бы копий и
пауз сборщика мусора там, где нужен ровный отклик.
59 126 строк собственного кода — ядро, 37 узлов-органов, инструменты сборки знаний и экзамены.
Устройство исходников
- kernel/ — ядро: ход человека, дело расследования, понимание запроса, сеть способностей.
- nodes/ — органы: справочник C++, PHP, словарь, морфология, грамматика, логика, причина,
следствие, память, планировщик, браузер, файлы, зрение, безопасность и другие.
- organ/ — кубы: чтение и запись, логика формул, законы равносильности.
- tools/ — ассимиляция книг, замеры, пробы.
- data/ — слова и приметы: всё, что движок знает о языке, лежит здесь, а не в коде.
- Gate/ — защита: сторожа кода и экзамены.
- Doc/ — записи разработки: 418 штук, каждая с замером.
Внешние средства
Внешнее средство подключается процессом и протоколом, а не второй экосистемой. Браузер
Camoufox движок поднимает сам и разговаривает с ним по Marionette; компилятор зовётся как
поручение и отвечает своим выводом. Так контур остаётся один.
Портал
Сайт написан на PHP 8.5 на собственной модульной CMS в духе PHP-Nuke: модули, темы, языковые
пакеты. Без Laravel и Symfony — по той же причине, что и в движке: меньше слоёв, которых мы не
писали и за которые не отвечаем.
Терминал
Настольное приложение на Qt6/C++: графики, позиции, реплей котировок. Календарь берёт у
Квазара по сети.
Данные
- Кубы знаний — свой формат: записи с полями и указателями по словам, читаются отображением в память.
- Портал — MariaDB.
- Никаких векторных баз и эмбеддингов: искать похожее по числам мы отказались сознательно.