Ocelotiq — AI-шлюз
OpenAI-совместимый API-шлюз. Одна точка входа, много провайдеров: направляешь на неё свой существующий OpenAI-клиент и получаешь GPT-4o, Claude, Gemini или Llama, не трогая код.
- Единый REST-слой, приводящий запросы и ответы разных провайдеров к общему виду.
- Аутентификация, управление API-ключами и квоты на ключ.
- Маршрутизация с выбором провайдера по доступности, задержке и цене.
- Аналитика по токенам, тратам, ошибкам, времени ответа и аптайму.
Python · PostgreSQL · Docker · Linux
Chaff — туннельный протокол
Свой протокол и клиент-серверная реализация на Rust. IP-трафик передаётся внутри браузерных сессий на порту 443 — TLS 1.3 + HTTP/2 либо QUIC. Фингерпринт рукопожатия и форма запросов соответствуют Chrome.
- Два транспорта на одном порту: HTTP/2 поверх TCP и QUIC DATAGRAM поверх UDP. Режим auto пробует UDP, при недоступности переключается на TCP.
- Пакеты кодируются в потоки загрузки ассетов и аналитические биконы. Собственные заголовки не передаются; идентификатор линка закодирован в хеше пути запроса.
- Аутентификация Ed25519 в составе cookie. При неверном ключе соединение проксируется на сайт-приманку.
- ChaCha20-Poly1305, ключи привязаны к TLS-экспортеру соединения. Скользящее окно защиты от повтора на 2048 позиций. Ротация ключей в канале в TCP-режиме, в QUIC — штатные key updates.
Производительность
Кодек собирает пакеты в записи по 16 КБ — один HTTP/2 DATA-фрейм и одна TLS-запись. Коалесинг адаптивный: при мелкой очереди пакеты отправляются без задержки, на объёмной передаче добавляется до 1 мс батчинга; ICMP и голые ACK не задерживаются. Ключевое расписание строится один раз на поток, шифрование выполняется на месте.
Трафик разделён на два класса: интерактивный обслуживается отдельной очередью перед объёмным, в обоих направлениях. Контроль перегрузки задаётся по направлению: BBR на загрузке, CUBIC на отдаче.
MTU пути определяется по текущей ёмкости соединения на каждом пакете; при нехватке пакет фрагментируется. Трафик распределён по четырём параллельным линкам с закреплением TCP-потока за линком, фрагменты одной датаграммы передаются по одному линку. Глубина очередей и размеры буферов рассчитаны от BDP канала.
Rust · TLS 1.3 · HTTP/2 · QUIC · TUN · ChaCha20-Poly1305
Исходники закрыты.
Робототехника и автоматизация
Работа в Indrobo: ПО для робототехнических платформ и линий промышленной автоматизации.
- Управляющее ПО и интеграция датчиков, контроллеров и встраиваемых устройств.
- Инфраструктура для развёртывания и обслуживания оборудования на объектах.
Rust · C/C++ · Python · Linux
Трекинг тела (FBT)
Самодельная система full-body tracking, собранная с нуля — потому что готовые стоят дороже, чем я был готов отдать.
- Собственная схемотехника на инфракрасных передатчиках и приёмниках.
- Прошивка и свой протокол связи между узлами.
C · embedded · разводка плат
Остальное
Что помельче — лежит на GitHub. Если что-то из этого интересно, напиши мне.