Discord по винтикам: Rust, ИИ и реверс
Если у вас есть только минута Это статья про проект, в котором я разобрал установленный Discord на Linux настолько, что по его же данным можно собрать новый клиент. Не патч, не тема и не простая обёртка вокруг сайта, а полноценный свой клиент на языке программирования Rust. Сейчас в проекте 90 запланированных карточек задач, из них приняты 46 (чуть больше половины). Готова серверная часть: подключение, сообщения, список участников, статусы, история, голосовая сигнализация, шифрование медиа, переводы, настройки и уведомления. Интерфейса пока нет. В проекте 1067 автотестов на Rust, и все они зелёные (успешные). Код пишут ИИ-агенты: я ставлю задачи, проверяю результат и принимаю работу как руководитель процесса. Кому будет полезно Эйчару, который читает это как портфолио и хочет понять, что за человек перед ним. Разработчику, который устал от поверхностных проектов и хочет увидеть дисциплину на длинной дистанции. Руководителю, который думает, можно ли доверять ИИ-агентам сложную работу. Человеку без технического бэкграунда, которому интересно изнутри посмотреть на современную разработку простым языком. Что такое Discord и почему он меня не устраивал Discord — это популярная программа для текста, голоса и видео. Официальный клиент для Linux работает на базе технологии Electron — внутри программы запускается целый браузер Chrome, из-за чего она потребляет много памяти и ресурсов батареи. Мне хотелось понять, как устроен Discord изнутри: что летит по сети, как работает голос и почему программа ведет себя именно так. Так появился проект discord-lab. Что такое обратная разработка, если объяснять по-человечески Представьте, что вам дали закрытые часы без инструкции, но они идут. Вы аккуратно снимаете крышку, смотрите на шестерёнки и понимаете, как устроен механизм. С программами то же самое (это называется обратной разработкой или реверс-инжинирингом): мы изучаем файлы, сетевой трафик и поведение уже установленной программы, чтобы восстановить её логику. Это изучение собственного клиента на компьютере, а не взлом или кража чужих данных. Из чего состоит проект discord-lab Данные: сырые файлы, захваты трафика и дампы, снятые с реального клиента. Спецификация: подробный чертеж и описание каждого действия программы. Код: здание, построенное на языке Rust, которое проверяется тысячами тестов. Для сборки используются современные инструменты: Rust для надёжного кода, Tauri для будущей оболочки, SQLite для хранения истории локально, а также ИИ-агенты и протокол MCP (Model Context Protocol) для автоматизации рутины и ускорения работы. Что уже работает, а чего еще нет Что готово: подключение к серверам, обработка сообщений, история чатов, списки участников, статусы, шифрование данных, переводы на разные языки и системные уведомления. Чего нет: красивого пользовательского интерфейса (экранов и кнопок), готовых голосовых звонков в режиме реального разговора, видеосвязи и установщика для обычных пользователей. Проект находится ровно на середине пути (51% карточек выполнено). Как пишется код: правила и дисциплина Чтобы проект не развалился, используется строгий подход: Сначала тесты: перед написанием кода всегда создается тест, который проверяет будущую функцию (подход TDD — разработка через тестирование). Проверка на реальности: тесты сверяются не с фантазиями автора, а с реальными данными из захватов трафика. ИИ как рабочие силы: задачи выполняют специализированные ИИ-агенты (воркеры), но финальная приёмка, ревью и ответственность всегда остаются за человеком. Контроль качества (Гейты и мутации): код проверяется автоматически; намеренно вносятся ошибки (мутации), чтобы убедиться, что тесты действительно способны их поймать. Заключение Этот проект — не волшебная демонстрация на пять минут, а ежедневная инженерная работа. Создаётся быстрый, лёгкий и понятный клиент на Rust с открытым процессом разработки и строгим контролем качества. Теги для социальных сетей
#Discord #Rust #ReverseEngineering #ОбратнаяРазработка #Tauri #Linux #OpenSource #ПетПроект #Разработка #ИИ #AIАгенты #MCP #TDD #Тестирование #Дискуссия #IT #Программирование