// О проекте
Судья, превращающий
исходник в вердикт.
Verwandlung — это открытая кроссплатформенная система онлайн-проверки, построенная на Spring Boot и распределённом пуле проверяющих, координируемых через ActiveMQ. Она компилирует, запускает и оценивает посылки на скрытых тестах в изолированных раннерах. Это тот же движок, что стоит за каждым соревнованием и тренировочной задачей на этом сайте.
// Архитектура
Spring Boot
Java-бэкенд, обслуживающий задачи, посылки и соревнования.
ActiveMQ
Брокер сообщений, распределяющий задания проверки по пулу проверяющих.
Judgers
Кроссплатформенные изолированные раннеры для Linux и Windows с ограничениями по времени и памяти.
MySQL
Постоянное хранилище для пользователей, задач, тестовых данных и вердиктов.
MyBatis
Слой сопоставления SQL между сервисами Spring и базой данных.
Thymeleaf
Серверный рендеринг представлений без тяжёлого SPA-фреймворка.
// Вехи
2014Первый коммит, уже с кроссплатформенными проверяющими на Linux и Windows, что редкость среди систем онлайн-проверки.
2015Добавлен ActiveMQ, чтобы веб-приложение и проверяющие общались через очередь сообщений и проверка могла выполняться на нескольких машинах.
2018Веб- и проверяющий компоненты упакованы в контейнеры с помощью Docker.
2023Оба модуля обновлены до Spring 6.
2026Веб- и проверяющий модули перестроены на Spring Boot 4.
Нативные песочницы Linux и Windows заменили устаревший раннер.
Совершенно новый дизайн интерфейса по всему сайту.
// Сопровождающий
H
Haozhe Xie
создатель и ведущий сопровождающий · с 2014
// Открытый код