Lichess — шахматы с открытым исходным кодом, которые покорили миллионы
Знаете ли вы, что один из самых популярных шахматных серверов в мире не только бесплатен, но и полностью открыт для изучения и модификации? Lichess.org — это редкий пример успешного некоммерческого проекта, который смог составить конкуренцию коммерческим аналогам.
Что такое Lichess?
Lichess (от "li[chess in sca]la") — это open source платформа для онлайн-игры в шахматы, созданная в 2010 году. В отличие от многих конкурентов, проект:
- Никогда не показывал рекламу
- Полностью бесплатен
- Имеет открытый исходный код (AGPL-3.0)
- Поддерживается сообществом
Сейчас Lichess обрабатывает более 500 тысяч игр ежедневно и имеет более 4.7 миллиардов сыгранных партий в базе данных.
Почему разработчикам стоит обратить внимание?
1. Полноценная игровая платформа
Lichess предлагает не просто доску для игры, а целую экосистему:
- Режимы игры: классика, блиц, пуля, ультрапуля
- Турниры и сеансы одновременной игры
- Встроенный анализатор на базе Stockfish
- Тренировка тактик и дебютов
- Форумы и командные соревнования

2. Технологический стек
Проект написан преимущественно на Scala с использованием:
- Play Framework 2.8 для бэкенда
- Akka Streams для асинхронной обработки
- Redis для работы с WebSocket соединениями
- MongoDB для хранения игр (более 4.7 миллиардов партий!)
- Elasticsearch для поиска
Фронтенд использует TypeScript с библиотекой snabbdom и Sass для стилей. Отдельно стоит отметить архитектуру проекта, где WebSocket сервер вынесен в отдельный сервис (lila-ws), что позволяет эффективно масштабировать нагрузку.
3. Открытость и сообщество
Lichess — это не просто код на GitHub. Это:
- Полностью открытая база сыгранных партий (PGN)
- API для интеграции с другими сервисами
- Поддержка 140+ языков через Crowdin
- Программа развития компетенций для контрибьюторов
Как это работает под капотом?
Архитектура проекта впечатляет своей продуманностью:

Ключевые компоненты:
- Основное приложение (lila) — обработка HTTP запросов
- WebSocket сервер (lila-ws) — реальное время
- Fishnet — кластер для анализа игр
- MongoDB и Elasticsearch — хранение и поиск
- Redis — брокер сообщений
Кому будет полезен этот проект?
- Разработчикам на Scala — отличный пример production-кода
- Фронтенд-инженерам — сложное SPA с реальными задачами
- DevOps-специалистам — интересная архитектура для масштабирования
- Шахматистам-программистам — возможность добавить свои фичи
Как начать?
Для запуска локальной копии достаточно выполнить:
./lila.sh
run
Подробное руководство по настройке окружения есть в вики проекта.
Lichess — это редкий пример того, как open source проект может быть не только технологически продвинутым, но и массово популярным. Его кодовая база — отличный учебник для разработчиков, а подход к управлению проектом — вдохновляющий пример для сообщества.
Если вы хотите:
- Изучить production-код на Scala
- Разобраться в архитектуре высоконагруженного сервиса
- Внести вклад в действительно полезный проект
— Lichess отличная возможность для этого. Кстати, а вы уже пробовали играть на lichess.org?