Каталог Rust-проектов

Это обзорная карта того, что мы написали на языке Rust. Для каждого проекта — короткое объяснение того, что он делает и зачем, и таблица с измеренными метриками кода. Всё написано для читателя, который знаком с программированием в целом, но не обязан знать наши внутренние темы: специальные термины поясняются по ходу.

Проектов много, поэтому они сгруппированы по назначению: сначала сетевые сервисы и приложения, затем библиотеки и инструменты, затем проекты вокруг языков, графики и обработки данных. Три самые крупные системы (движок XPath/XSLT, генератор кода kdsl, инструменты COLM) разобраны подробно в отдельном портфолио — здесь они даны кратко, чтобы карта была полной.

Порядок величины: во всей нашей Rust-базе — около 226 000 строк кода в более чем 800 файлах. Ниже — основные проекты этой базы.

Все числа получены измерением, а не на глаз: строки считает инструмент tokei, а структуры и функции — анализатор на основе Rust-парсера syn. Как читать столбцы таблиц — короткая шпаргалка в самом конце.


Сервисы и приложения

Здесь собрана группа наших небольших, но рабочих Rust-проектов — это «обслуга» экосистемы: сетевые сервисы, шлюзы, сборщики данных и утилиты-конвертеры. Каждый делает одну понятную вещь. Для каждого — короткое объяснение и таблица измеренных метрик кода.

Числа получены измерением: строки — инструментом tokei (столбец Code, без пустых строк и комментариев; папки target/vendor/node_modules исключены), а структуры/функции/тесты — собственным анализатором на основе Rust-парсера syn (через сервис Extractor). «Функций» = отдельные функции плюс методы внутри блоков impl.


commmanager

Это «диспетчер разговоров». Представьте телефонную станцию: приходит запрос «начни новую сессию с Claude», станция заводит для неё карточку (сессия, ходы диалога, статус) и через шину сообщений NATS (это как общая радиочастота, на которой сервисы перекрикиваются) поручает работу отдельному «водителю» — браузерному агенту (см. selfagent ниже). Сам он не открывает браузер, а лишь раздаёт задания, следит за статусами водителей и выкидывает протухшие сессии по таймауту. По сути — HTTP-мозг, который координирует парк браузерных автоматов и даёт наружу простой API «создай сессию / пошли сообщение / закрой».

Строк Структур Перечисл. Трейтов Функций Тестов
640 14 1 0 14 0

crawler

Умная качалка файлов из интернета. Не «паук», который сам ползает по ссылкам, а именно загрузчик: даёшь ему адрес — он скачивает, опираясь на проверенный внешний движок aria2 (быстрый менеджер закачек). Умеет выбирать способ загрузки под тип контента (маршрутизация «движков»), ведёт учёт закачек и, что важно для нашего десктопа, следит за свободным местом на диске и не даёт переполнить его. Полезен как надёжный «рабочий по загрузкам» для остальной системы.

Строк Структур Перечисл. Трейтов Функций Тестов
1335 23 6 0 37 12

eidos-embed

Свой движок «эмбеддингов» — превращения текста в вектор чисел, по которому машина может судить о смысловой близости фраз (на таких векторах работает умный поиск). Написан не поверх чужой большой библиотеки, а «изнутри»: отдельные модули на токенизатор (нарезку текста), загрузку весов модели, вычислительные ядра и саму модель. Отдельная деталь — счётная часть ускорена через ISPC (технология, дающая процессору считать сразу по многу чисел за такт), для чего сделан свой мостик к его системе задач. Это фундамент под наш собственный семантический поиск, не зависящий от внешних сервисов.

Строк Структур Перечисл. Трейтов Функций Тестов
715 7 0 0 28 0

foreman-v2

Наш «прораб» (foreman) — сервис, которому сдают тяжёлые долгие задачи, чтобы они не блокировали основную работу. Кидаешь ему задание (например, «собери проект» или «прогони тесты»), он ставит его в очередь, запускает, а ты потом спрашиваешь статус и забираешь результат, не сидя в ожидании. Внутри аккуратно разложен по полочкам: авторизация, исполнитель задач, конфигурация, набор HTTP-маршрутов (отправить / статус / список задач) и проверка здоровья. Это тот самый Foreman, через который у нас положено гонять всё, что дольше 15 секунд.

Строк Структур Перечисл. Трейтов Функций Тестов
939 14 3 0 34 0

gate

Единые ворота (gate) в экосистему — HTTP-шлюз, за которым спрятан фоновый рабочий (worker), выполняющий задания. Наружу торчит набор маршрутов: запуск команд, управление задачами и заданиями (jobs), загрузка, администрирование, пакетная обработка для вики. Идея — дать остальным один аккуратный вход с документацией API вместо россыпи разрозненных endpoint’ов. По сути — приёмная, которая принимает запросы и раздаёт их своему исполнителю.

Строк Структур Перечисл. Трейтов Функций Тестов
1479 30 0 0 31 0

janitor

Крошечный служебный HTTP-сервис — буквально один обработчик «track» с проверкой токена доступа и эндпоинтом здоровья. Судя по имени («уборщик») и устройству, это лёгкая точка приёма событий и отметок для последующей обработки или очистки. Небольшой вспомогательный компонент, и ценность его именно в скромности: одна ответственность, почти нечему ломаться.

Строк Структур Перечисл. Трейтов Функций Тестов
113 4 0 0 5 0

rag

Сервис RAG — «поиск-с-подсказкой» для системы. RAG (retrieval-augmented generation) означает: перед тем как отвечать, сначала найти в своей базе подходящие куски текста и отдать их — чтобы ответ опирался на факты, а не на память модели. Внутри всё, что для этого нужно: встраиватель текста в векторы (embedder), хранилище (store), сам поиск (search) и HTTP-маршруты. Это наш собственный поисковый бэкенд, через который система «вспоминает» релевантные документы.

Строк Структур Перечисл. Трейтов Функций Тестов
1668 25 0 1 51 0

eidos-wiki

Наша собственная «вики» — веб-приложение для заметок, устроенных деревом: у страницы может быть родитель и вложенные подстраницы, как папки в проводнике. Пишешь текст в простой разметке Markdown — сервис превращает его в готовую HTML-страницу и раскладывает по шаблонам (движок Tera), а хранит всё в лёгкой встроенной базе SQLite. Наружу отдаёт и веб-интерфейс для чтения-правки, и HTTP-API, чтобы страницы можно было заводить программно. По сути — домашняя база знаний с древовидной навигацией (живёт на порту 7660).

Строк Структур Перечисл. Трейтов Функций Тестов
591 9 0 0 26 0

unicvt

Универсальный конвертер форматов — швейцарский нож для текста. Умеет превращать текст в JSON и обратно, HTML в чистый текст или в Markdown, кодировать/декодировать Base64 и URL-строки. Работает и как утилита командной строки, и как маленький HTTP-сервис (в том числе принимает данные, упакованные в Base64). Удобная «переходная муфта», когда одному сервису нужен один формат, а на входе — другой.

Строк Структур Перечисл. Трейтов Функций Тестов
419 2 1 0 23 0

wsrelay

Ретранслятор поверх WebSocket (постоянное двустороннее соединение, по которому сервер и клиент болтают в реальном времени, не переспрашивая друг друга). Принимает команды по HTTP, прокидывает их в подключённый по WebSocket клиент (обработчик tabex обслуживает расширение в браузерной вкладке) и отдаёт обратно результаты. То есть служит мостом между обычным HTTP-миром и живым соединением с браузером.

Строк Структур Перечисл. Трейтов Функций Тестов
210 4 0 0 7 0

mcp-gate

Шлюз MCP — единая «дверь» для инструментов. MCP (Model Context Protocol) — это стандарт, по которому языковая модель вызывает внешние инструменты. Данный сервис выставляет наружу один-единственный инструмент eidos, который внутри маршрутизирует запрос к любому нужному сервису экосистемы. Красота подхода: модели не нужно знать про десяток разных инструментов — она видит одну дверь, а за ней уже разбираются, кому передать. Здесь же живёт локальная авторизация и конфигурация.

Строк Структур Перечисл. Трейтов Функций Тестов
872 8 0 0 27 0

mcp-common-tools

Общая библиотека готовых MCP-инструментов — по сути ящик с инструментами, из которого собираются MCP-сервисы. Каждый модуль — отдельный инструмент: работа с shell, системой контроля версий Fossil, файлами, инфраструктурой, RAG-поиском, базой SurrealDB, скриптами, удалёнными хостами, загрузками, шиной NATS и парсером кода Extractor. Здесь не сервис-приложение, а переиспользуемый набор кирпичиков — поэтому и структур с методами много (по инструменту на каждую задачу). Пишешь новый MCP-сервис — берёшь отсюда нужные готовые инструменты вместо того, чтобы изобретать их заново.

Строк Структур Перечисл. Трейтов Функций Тестов
1945 54 0 0 59 0

ispc-mandelbrot-rs

Демонстрация-доказательство: можно ли из Rust вызывать сверхбыстрые векторные ядра на ISPC (компилятор Intel, который заставляет один поток процессора считать сразу по многу чисел). Проект считает множество Мандельброта (классический математический фрактал — удобный тяжёлый счётный тест) двумя способами: обычным и через ISPC, и меряет разницу через встроенный бенчмарк. Это учебный полигон и шаблон интеграции, на котором отработан мостик Rust↔︎ISPC, позже переиспользованный в eidos-embed.

Строк Структур Перечисл. Трейтов Функций Тестов
317 2 0 0 12 0

selfagent

Тот самый «водитель» браузера, которым дирижирует commmanager. Он по-настоящему запускает браузер, подкладывает нужные cookie (чтобы зайти уже авторизованным), открывает веб-версию Claude, печатает туда сообщение и вычитывает ответ — то есть автоматизирует живой чат так, будто за клавиатурой человек. Команды получает через шину NATS (spawn / send / close), а статусом и потоком ответов делится обратно. Связка commmanager+selfagent — это наш способ программно управлять сессиями Claude через обычный браузер.

Строк Структур Перечисл. Трейтов Функций Тестов
1682 18 2 0 34 0

services/duckdb-agent-rs

Сетевой сервис-обёртка над DuckDB — это встраиваемая аналитическая база данных (как SQLite, но заточенная под быстрые запросы по колонкам, аналитику и «числодробилку»). Он даёт по HTTP и WebSocket выполнять SQL-запросы, подключать и отключать файлы-базы, смотреть список таблиц и их схему. Удобно, когда нужно дать другим сервисам общий доступ к аналитической базе через сеть, а не тащить DuckDB в каждый из них.

Строк Структур Перечисл. Трейтов Функций Тестов
317 7 0 0 16 0

services/duckdb-core

Библиотека-ядро под работу с DuckDB, на которой стоят сервис duckdb-agent-rs и конвертер xlsx2duckdb. Прячет за собой всю рутину: подключить/отключить базу, выполнить запрос, получить список таблиц и колонок, аккуратно превратить значения базы в JSON. Это не приложение, а общий фундамент — вынесенная общая логика, чтобы не дублировать её в каждом потребителе.

Строк Структур Перечисл. Трейтов Функций Тестов
238 5 0 0 11 0

services/hl-collector

Сборщик рыночных данных с биржи Hyperliquid (HL — децентрализованная крипто-биржа). Держит живое WebSocket-подключение к бирже, на лету агрегирует поток данных и восстанавливает нужное состояние (модули ws, aggregator, rebuilder). Задача — непрерывно и надёжно принимать биржевой поток и приводить его к пригодному для дальнейшего анализа виду. Часть нашей инфраструктуры сбора данных для исследований торговых стратегий.

Строк Структур Перечисл. Трейтов Функций Тестов
572 6 0 0 19 0

services/office-decrypt

Узкая утилита-библиотека: расшифровка защищённых паролем файлов Office (прежде всего .xlsx). Внутри — честная реализация «взрослой» криптографии Office: агрессивное шифрование (agile encryption), вывод ключа, расшифровка AES в режиме CBC и чтение внутреннего контейнера CFB, в котором Office прячет зашифрованные потоки. Нужна, когда на вход приходит запароленная таблица, а её содержимое надо разобрать дальше по конвейеру. Работает и как библиотека, и как отдельная программа.

Строк Структур Перечисл. Трейтов Функций Тестов
250 1 0 0 10 0

services/service-catalog

MCP-сервис, показывающий живую карту процессов экосистемы (по описанию в Cargo.toml — «live process topology»). Он смотрит на реальную топологию: какие сервисы подняты, как они прописаны в маршрутизаторе Envoy (это прокси, через который ходит трафик между сервисами), и отдаёт эту картину как набор MCP-инструментов. Полезен как «диспетчерская доска»: спросил — и видишь, кто сейчас жив и как всё связано, вместо ручного обхода конфигов.

Строк Структур Перечисл. Трейтов Функций Тестов
995 15 2 0 32 0

services/xlsx2duckdb

Утилита-ETL командной строки: берёт Excel-таблицу (.xlsx) и заливает её в базу DuckDB. Сама угадывает типы колонок по данным, строит подходящую таблицу, аккуратно чистит имена колонок и таблиц (чтобы не спорили с SQL) и вставляет строки. Мостик из «человеческого» формата таблиц в формат, удобный для быстрых аналитических запросов; опирается на общее ядро duckdb-core.

Строк Структур Перечисл. Трейтов Функций Тестов
296 1 1 0 9 0

Библиотеки и инструменты

Это «второй эшелон» нашего кода на Rust — не три флагманских системы, а рабочая экосистема вокруг них: хранилища данных, служебные демоны, инструменты для чтения и отладки кода, движок торговой аналитики и собственная система контроля версий. Каждый проект ниже описан коротко (что он делает и зачем), а под ним — таблица с точными числами: сколько строк написано и из чего код состоит. Числа получены измерением (tokei для строк, разбор через Rust-парсер syn для структур), а не прикидкой. Как читать столбцы — короткая шпаргалка в самом конце.

Из заявленного списка все проекты на Rust описаны. Один пункт — ccode-reader — оказался написан на Python (единственный файл main.py), поэтому в этот Rust-каталог он не входит; про него отдельная пометка в конце.


op

Это наш «блокнот с памятью» для всей экосистемы — маленькое хранилище узлов и связей между ними (по сути мини-граф знаний). Программы-соседи не лезут в файл напрямую, а общаются с фоновым демоном opd через локальный сокет — попросил «дай узел», «сохрани узел», «свяжи два узла». Внутри лежит уже второе поколение хранилища (store и store_v2) плюс слой миграции со старого формата на новый, чтобы накопленные данные не потерять при переезде. Полезен тем, что даёт всем сервисам единую точку, где живут факты о проектах, реестрах и настройках.

Строк Структур Перечисл. Трейтов Функций Тестов
3626 13 1 0 79 13

cfat

Это свой формат архива — представьте tar или zip, но заточенный под наши нужды. Он умеет сжимать данные (кодек LZ4), а сверху добавляет «страховку» на случай повреждения диска: избыточное кодирование Рида-Соломона (тот же приём, что защищает данные на CD и в QR-кодах — часть архива можно потерять, а он всё равно восстановится). Отдельная приятная мелочь — архив можно «примонтировать» как обычную папку через FUSE и читать файлы внутри, будто они распакованы, хотя на диске они лежат сжатыми. Есть и утилита tar2cfat — переложить готовый tar в наш формат.

Строк Структур Перечисл. Трейтов Функций Тестов
2949 20 4 1 34 14

bastix

Это «каркас акторов», знающий про устройство железа. Актор — это независимый кусочек программы со своим почтовым ящиком: он не лезет в чужую память, а просто шлёт и принимает сообщения (удобно, чтобы не путаться в многопоточности). Bastix надстроен над известной библиотекой actix, но добавляет понимание NUMA — на серверах с несколькими процессорами память «ближе» к одному из них и «дальше» от другого, и если это игнорировать, всё тормозит. Bastix определяет эту топологию, прикрепляет потоки к нужным ядрам и выделяет память рядом с тем процессором, который её будет использовать. Проще говоря — выжимает из многопроцессорной машины скорость, которую наивный код теряет.

Строк Структур Перечисл. Трейтов Функций Тестов
1578 9 1 1 12 28

callgraph

Строит карту вызовов по исходному коду — кто кого зовёт. Такая карта («граф вызовов») нужна, чтобы понимать чужой проект: за какую ниточку ни потяни, видно, какие функции с ней связаны. Внутри он опирается на движок rust-analyzer (тот самый «умный» анализатор Rust, что подсказывает в редакторах) и складывает результат по своей схеме, чтобы потом по нему можно было искать. По сути это фундамент для навигации по большим кодовым базам: понять, что и на что завязано, не читая весь проект глазами.

Строк Структур Перечисл. Трейтов Функций Тестов
2323 16 3 0 62 5

ctags-ffi

Крохотный «переходник» к ctags — классической утилите на C, которая быстро вытаскивает из кода список символов (функций, типов, переменных). FFI в названии означает «foreign function interface» — механизм, позволяющий Rust-коду напрямую дёргать функции чужой библиотеки на C, без запуска отдельной программы. Строк тут совсем мало (около сотни), но задача из «низкоуровневых»: аккуратно состыковать два языка. По сути это тонкий мостик, чтобы наш инструментарий получал разметку символов даром, повторно используя проверенный временем ctags.

Строк Структур Перечисл. Трейтов Функций Тестов
120 0 1 0 4 1

eidos-lambda

Это «песочница» для запуска чужого кода на разных языках. Представьте: нужно выполнить маленький скрипт (на JavaScript через Bun, на Lua, на Python-подобном Monty, на Pony или на нативном коде), но так, чтобы он не навредил системе. eidos-lambda даёт единый способ его запустить и запирает в клетку средствами самого ядра Linux — landlock и seccomp (они ограничивают, к каким файлам и системным вызовам код вообще имеет доступ). Похоже на «serverless-функции», только свои и с упором на безопасную изоляцию. Полезен там, где надо выполнять пользовательскую логику, не доверяя ей.

Строк Структур Перечисл. Трейтов Функций Тестов
1402 18 2 0 11 7

eidos-service

Это «телефонная станция» экосистемы. Сервисов у нас много, и вместо того чтобы каждый знал адреса всех остальных, они регистрируются в одном месте, а этот модуль принимает запрос и переправляет его нужному адресату (dispatch, forward), заодно проверяя, кто из них живой (health). Есть реестр служб и начальное наполнение (seed), чтобы система знала, кого куда звать. Это тот слой, про который сказано «один инструмент eidos маршрутизирует ко всем сервисам». Полезен тем, что превращает россыпь демонов в единую управляемую систему.

Строк Структур Перечисл. Трейтов Функций Тестов
1198 3 4 0 22 14

eidos-gpu

Набор тяжёлых численных расчётов, перенесённых на видеокарту. GPU хорош, когда одну и ту же операцию надо сделать над горой чисел одновременно — и здесь как раз такие задачи: разложения матриц на собственные значения (eigen_gpu), вычисление сплайнов и NURBS (гладкие кривые и поверхности, знакомые по 3D-графике и САПР), вейвлет-преобразования (разбор сигнала на волны разного масштаба), «роторы» из геометрической алгебры. По сути это математическая библиотека, где ядра написаны так, чтобы считать на GPU в разы быстрее процессора. Полезна как ускоритель для аналитики и обработки сигналов.

Строк Структур Перечисл. Трейтов Функций Тестов
5934 13 1 0 43 39

candle-pack

Компактное хранилище биржевых «свечей» — так называют элемент графика цены за период (открытие, максимум, минимум, закрытие). Таких свечей накапливаются миллионы, и хранить их «как есть» расточительно, поэтому candle-pack укладывает их в плотный столбцовый формат с дельта-кодированием — записывает не сами числа, а разницы между соседними (они мелкие и жмутся отлично). Умеет и упаковывать, и распаковывать, и отвечать на запросы прямо по сжатым данным, а встроенный бенчмарк меряет скорость. Это фундамент, поверх которого работают наши сервисы с рыночными данными.

Строк Структур Перечисл. Трейтов Функций Тестов
2814 13 2 1 23 6

candle-store

Веб-сервис поверх хранилища свечей: поднимает HTTP-API (на фреймворке axum) и отдаёт по запросу нужный кусок рыночных данных — по инструменту, периоду, типу рынка (спот или фьючерсы). Подтягивает данные через candle-pack и умеет считать на лету сглаженные кривые (B-сплайны из соседнего szp). По сути это «витрина», через которую графики и аналитика получают свечи по сети. Весь код умещается в один файл — служба небольшая и специализированная.

Строк Структур Перечисл. Трейтов Функций Тестов
713 12 1 0 18 0

candle-server

Родственник candle-store, но с упором на «живую» отдачу данных: помимо обычного HTTP он держит WebSocket — постоянное соединение, по которому сервер сам проталкивает свежие данные клиенту, не дожидаясь запроса (так работают онлайн- графики, обновляющиеся в реальном времени). Файлы данных он читает через memory-mapping (memmap2) — операционная система сама подгружает нужные куски файла в память, что быстро и экономно. Рядом лежит папка static — значит, сервис отдаёт ещё и готовую страницу с графиком. Полезен там, где нужен живой поток котировок в браузер.

Строк Структур Перечисл. Трейтов Функций Тестов
670 15 0 0 16 0

debug-butler

«Дворецкий» для профилирования GPU — фоновый демон, который снимает с видеокарты точные показатели производительности. Он работает через фирменные интерфейсы NVIDIA — CUPTI и PerfWorks (они дают доступ к аппаратным счётчикам GPU: сколько времени заняли ядра, как загружена память и так далее). Собранные данные он публикует наружу, умеет срабатывать по триггеру и разбивать замеры по «регионам» кода. Полезен, когда надо понять, почему расчёт на видеокарте медленный, и куда именно уходит время.

Строк Структур Перечисл. Трейтов Функций Тестов
2976 25 5 0 26 0

eidos-logger

Центральный сборщик логов. Сервисы не пишут журналы каждый в свой угол, а шлют их в общую шину сообщений NATS; этот демон на неё подписан (nats_sub), складывает поступающее в буфер и пишет на диск (buffer, writer), а через HTTP-маршруты (routes, query) позволяет потом эти логи искать. Получается единое окно, куда стекается всё, что происходит в системе. Полезен для наблюдения и разбора инцидентов: смотришь в одном месте, а не бегаешь по десятку файлов.

Строк Структур Перечисл. Трейтов Функций Тестов
935 14 2 0 15 2

extractor

Это тот самый сервис-«швейцарский нож» для чтения кода (у нас он живёт на порту 7751). Идея простая: прежде чем открывать целый файл и засорять внимание, спроси у extractor «дай оглавление» или «найди вот такой паттерн» — и получишь структуру с номерами строк. Под капотом у него целый набор движков: syn для точного разбора Rust, ast-grep для поиска по структуре кода в десятках языков, regex для обычного текста, а ещё разборщики бинарников и ELF-файлов, интеграция с radare2 и Java. По сути это единый вход к куче инструментов анализа кода — самый крупный и «рабочий» из здешних служебных проектов (156 функций, 6 движков).

Строк Структур Перечисл. Трейтов Функций Тестов
9060 68 10 6 156 31

le-chat-botte

Отладчик без графического интерфейса — «gdb под управление программой». Обычным отладчиком человек кликает мышкой; здесь же всё управляется через API (в том числе через MCP — протокол, которым с инструментами общаются ИИ-ассистенты), так что процессом можно рулить автоматически. Он умеет то же, что и настоящий отладчик: ставить точки останова, шагать по коду, читать регистры и память, разбирать отладочную информацию DWARF, заглядывать в состояние CUDA-ядер на видеокарте. Есть и встроенный Lua для скриптов. Имя — «Кот в сапогах»; полезен, чтобы программно препарировать работающие программы.

Строк Структур Перечисл. Трейтов Функций Тестов
4269 39 11 0 53 0

Тесты: 6 интеграционных тест-файлов в tests/ есть, но они запускаются как самостоятельные программы (через fn main), а не через стандартную аннотацию #[test], поэтому по формальному счётчику #[test] выходит 0.


le-chat-derive

Крошечный, но хитрый спутник предыдущего проекта. Это процедурный макрос — кусочек кода, который во время компиляции сам дописывает другой код. Повесив его на свой тип данных, вы делаете этот тип «прозрачным» для отладчика le-chat-botte: тот может на ходу заглядывать внутрь и даже менять значения полей у работающей программы — без перекомпиляции. Полезно, например, чтобы крутить параметр обучения модели прямо в процессе. Строк мало, но это тонкая метапрограммная работа.

Строк Структур Перечисл. Трейтов Функций Тестов
810 0 0 0 11 0

observe

Маленький сторож, который следит, живы ли наши сервисы. Раз в несколько секунд он обходит список служб (у каждой — имя, порт и способ проверки: HTTP-запрос или просто попытка соединиться) и записывает статус в общую базу состояния (/run/eidos/state.db). По сути это «пульс» системы: по нему сразу видно, что упало, а что работает. Совсем небольшой (около 250 строк), но нужный — на нём держится картина здоровья всей экосистемы.

Строк Структур Перечисл. Трейтов Функций Тестов
255 1 0 0 8 0

signal-trade

Движок торговой аналитики — сердце нашей «рентген»-темы про проверку сигналов. Здесь живёт всё, что нужно, чтобы честно оценить торговую стратегию на истории: загрузка рыночных данных из разных источников, симулятор исполнения сделок (simulator, replay), учёт результата с разбивкой по причинам (attribution, daily_pnl), фильтр рыночного режима, ранжирование сигналов и «векторизованный свип» — быстрый перебор тысяч вариантов параметров разом. Смысл в том, чтобы отличить настоящее преимущество от случайной удачи или подгонки под прошлое. Один из самых крупных проектов группы (около 10 700 строк, 122 функции).

Строк Структур Перечисл. Трейтов Функций Тестов
10752 82 11 2 122 44

szp-builder

Собирает наши «SZP» — архивы рыночных данных, обогащённые заранее посчитанными математическими признаками. Мало сохранить сырые цены; szp-builder прогоняет через них серьёзный аппарат: сплайны (гладкие приближения кривой цены), вейвлеты (разложение на волны разного масштаба), DMD — динамическое разложение мод (метод, вытаскивающий из данных повторяющиеся паттерны движения), лид-лаг (кто из инструментов «ведёт», а кто «отстаёт»). Есть отдельные сборщики под данные Binance и Hyperliquid и утилиты сравнения/инспекции архивов. По сути это фабрика предобработки, готовящая почву для быстрой аналитики. (Внутренний crate называется szp.)

Строк Структур Перечисл. Трейтов Функций Тестов
13381 44 4 0 142 105

Из подсчёта исключена папка-дубль src.bak-pre-merge (резервная копия перед слиянием) — иначе строки удваивались бы. Число по «живому» коду в src/.


szp-verify

Контролёр качества для SZP-архивов. Он открывает готовый архив и проверяет, что внутри всё сходится: данные целы, признаки посчитаны корректно, сплайны и катящиеся статистики (например, скользящее окно на 60 точек) не разъехались. Это отдельный маленький инструмент рядом с szp-builder — по принципу «кто строит, тот не проверяет сам себя». Полезен как страховка: прежде чем доверить архиву аналитику, убеждаемся, что он не битый.

Строк Структур Перечисл. Трейтов Функций Тестов
731 2 0 0 11 0

meili-ingest

Служба загрузки данных в Meilisearch — это движок полнотекстового поиска (как маленький, шустрый Elasticsearch). meili-ingest читает данные из разных источников и заливает их в поисковый индекс пачками. Источники подключаются как сменные «драйверы»: есть драйвер для наших CFAT-архивов и для обычных NDJSON-файлов, а добавить новый — дело нехитрое благодаря единому интерфейсу SourceDriver. По сути это конвейер «взять данные откуда угодно и сделать их искомыми». Единственный проект группы, у которого есть свой README и описание в Cargo.toml.

Строк Структур Перечисл. Трейтов Функций Тестов
558 8 0 1 12 0

claude-token-refresh

Бытовой, но важный помощник: обновляет токены доступа к Claude, чтобы связь не обрывалась. Токены авторизации живут ограниченное время и протухают; этот инструмент хранит учётные данные, заранее проверяет их годность (preflight, validator), при необходимости освежает и показывает статус. Ничего научного — просто чтобы автоматика не спотыкалась в самый неподходящий момент из-за истёкшего доступа. Небольшой и узкоспециальный.

Строк Структур Перечисл. Трейтов Функций Тестов
741 9 2 0 19 0

kuziol

Наша собственная система контроля версий — но не «ещё один git», а патч-ориентированная, в духе Pijul и Darcs. Разница в философии: git хранит снимки состояния, а здесь единицей является сам патч (изменение), и система математически понимает, когда два изменения независимы и их можно смело менять местами (commute) — это резко упрощает слияния и ветвление. Под капотом лежит серьёзная теория категорий: расширения Кана, естественные преобразования, «полиномы» и морфизмы схем — то есть корректность операций выводится из математики, а не из эвристик. Умеет импортировать историю из Fossil, есть ветки, тэги, тайники (stash), рабочие пространства. Самый крупный проект группы (около 17 000 строк, 402 функции) и живёт в отдельном репозитории.

Строк Структур Перечисл. Трейтов Функций Тестов
16931 47 30 0 402 158

ccode-reader — не Rust (пропущен)

В списке значился ccode-reader, но на диске это проект на Python: единственный исходник — main.py (около 17 КБ) плюс его резервная копия, ни одного .rs-файла и ни одного Cargo.toml. Это читалка/индексатор логов ccode; в Rust-каталог он не включён, поскольку каталог посвящён коду на Rust.


(Как читать столбцы — общая шпаргалка в конце каталога.) ## Языки, графика и прочее

Пёстрая группа: свой рендерер 3D-сцен на видеокарте, низкоуровневый загрузчик чужого языка и несколько маленьких утилит, что качают и переупаковывают биржевые данные. Общая нить — работа близко к «железу» и к устройству языков: парсеры, кодогенераторы, FFI к C/CUDA/ISPC.

Часть проектов (движок XPath/XSLT, генератор kdsl, инструменты COLM) уже разобрана в отдельном портфолио — здесь для них только короткая строчка и метрики, чтобы каталог был полным.

Все числа — измерение, а не прикидка: строки — tokei (столбец Code, без комментариев и пустых; вендор и target/ исключены), структуры/перечисления/трейты/функции — анализатор на Rust-парсере syn через сервис Extractor, тесты — счёт #[test]/#[tokio::test].


sdlnurbs

Представьте классический бесплатный рендерер POV-Ray: вы описываете 3D-сцену текстом на его «сценарном языке» (SDL) — где шар, где плоскость, где свет, — а программа рисует картинку. sdlnurbs читает ровно такие же файлы сцен, но считает картинку не на процессоре, а на видеокарте, собственными CUDA-ядрами; плюс умеет NURBS — гладкие математические поверхности (когда изгиб кузова машины задан формулой, а не миллионом треугольников). Внутри полноценный конвейер: свой парсер SDL (с лексером на ISPC под широкие SIMD-инструкции AVX-512), маленькая байткод-машина и «волновой» трассировщик лучей (лучи сортируются по типу работы, чтобы видеокарта не простаивала). По замерам самих авторов — кадр 4K за 32.5 мс, примерно в 9.5 раза быстрее POV-Ray на 24 потоках, и картинка совпадает с эталоном почти идеально (SSIM 0.9999). Самый крупный и зрелый проект группы.

Строк Структур Перечисл. Трейтов Функций Тестов
11 678 66 13 0 185 87

hl-fetch

Маленькая качалка: тянет с API криптобиржи Hyperliquid сырые свечи (минутные и 4-часовые) по всем бессрочным парам и складывает в JSONL. Умеет докачивать — смотрит последнюю метку времени в уже скачанном файле и продолжает с неё, не начиная заново. Одностраничная утилита-кирпичик в конвейере данных.

Строк Структур Перечисл. Трейтов Функций Тестов
213 0 0 0 5 0

hl2cdl

Конвертер-переходник: берёт скачанные hl-fetch’ем JSONL-свечи Hyperliquid и упаковывает их в наш компактный бинарный формат — записи фиксированного размера (28 байт: метка времени плюс OHLCV в виде f32), — а затем зовёт candle-pack, чтобы собрать итоговый .cdl-файл. Тихая, но нужная склейка между «сырьём» и рабочим хранилищем свечей.

Строк Структур Перечисл. Трейтов Функций Тестов
190 1 0 0 5 0

candle-ingest

Ещё один «приёмщик» свечей: читает сырые JSONL-свечи, параллельно (через rayon) разбирает их, чистит и сортирует по времени (через упорядоченную карту — заодно снимая дубли) и пишет в наш упакованный бинарный вид. По духу близок к hl2cdl, но заточен под пакетную загрузку в хранилище.

Строк Структур Перечисл. Трейтов Функций Тестов
304 1 0 0 9 0

pony-loader

Мини-компоновщик (линкер) своими руками. Pony — язык программирования на модели акторов; его компилятор выдаёт объектные .o-файлы. pony-loader берёт такой .o, разбирает его формат ELF (библиотекой goblin), раскладывает секции в один непрерывный кусок памяти рядом с работающим процессом (чтобы адреса дотягивались короткими 32-битными ссылками), сопоставляет символы с рантаймом Pony и применяет релокации — по сути на лету «вживляет» скомпилированный код чужого языка внутрь Rust-хоста. Низкоуровневая работа руками: память, символы, релокации. Эксперимент про то, как встроить рантайм постороннего языка.

Строк Структур Перечисл. Трейтов Функций Тестов
806 1 0 0 11 0

Уже подробно описаны в отдельном портфолио

Коротко и с метриками — чтобы каталог был полным. Развёрнутое описание, доказательства качества и контекст — в основном портфолио.

xslt-transducer/xpath-core

Сердце собственного движка XPath/XQuery 3.1 — «SQL для XML», написанный на Rust с нуля. Проходит 97.8% официальных тестов W3C без единого аварийного падения. (подробно — в отдельном портфолио.)

Строк Структур Перечисл. Трейтов Функций Тестов
40 653 52 48 0 474 314

xslt-transducer/xpath-harness

Обвязка, которая запускает официальный набор тестов W3C и считает результаты. (подробно — в отдельном портфолио.)

Строк Структур Перечисл. Трейтов Функций Тестов
3 758 18 7 0 85 3

xslt-transducer/xpath-census

Инструмент статистики по поддержанным возможностям языка. (подробно — в отдельном портфолио.)

Строк Структур Перечисл. Трейтов Функций Тестов
1 466 5 0 0 36 0

xslt-transducer/dss-core

Ранний слой преобразований XSLT поверх движка XPath. (подробно — в отдельном портфолио.)

Строк Структур Перечисл. Трейтов Функций Тестов
3 481 13 13 0 89 79

kdsl

Из одного описания расчёта генерирует быстрый код сразу под процессор (ISPC) и видеокарты (CUDA). (подробно — в отдельном портфолио.)

Строк Структур Перечисл. Трейтов Функций Тестов
6 838 13 6 2 103 56

kdsl-spirv

Генератор под универсальный GPU-стандарт SPIR-V (видеокарты разных марок). (подробно — в отдельном портфолио.)

Строк Структур Перечисл. Трейтов Функций Тестов
933 1 0 0 10 0

colmc

Компилятор языка разбора текста COLM, встроенный в Rust (попутно починены 2 бага в оригинале на C). (подробно — в отдельном портфолио.)

Строк Структур Перечисл. Трейтов Функций Тестов
261 0 0 0 11 6

colm-rt

Переписанный на Rust «исполнитель» скомпилированных программ COLM. (подробно — в отдельном портфолио.)

Строк Структур Перечисл. Трейтов Функций Тестов
761 5 2 0 11 7

colm-rs

Связующий слой (FFI-мостик) от Rust к оригинальной C-библиотеке COLM плюс демо. (подробно — в отдельном портфолио.)

Строк Структур Перечисл. Трейтов Функций Тестов
343 8 1 0 12 0

colm-udf-demo

Сквозное демо, доводящее цепочку COLM до применения внутри базы данных. (подробно — в отдельном портфолио.)

Строк Структур Перечисл. Трейтов Функций Тестов
70 0 0 0 2 0

Как читать столбцы таблиц

Замеры сделаны 2026-07-01. Строки — tokei; структуры и функции — разбор через Rust-парсер syn (сервис Extractor). Числа — измерение, а не оценка.


Контакты

Гура Денис

Приложения