Online Code Compilation Platform — Backend сервер для веб-приложения онлайн компиляции и выполнения кода.
🔧 Статус проекта: В активной разработке
CompileHub — это высокопроизводительный backend-сервис для онлайн IDE, поддерживающий компиляцию и выполнение кода на нескольких языках программирования. Проект реализует асинхронную архитектуру обработки запросов с системой очередей, rate limiting и детальной метрикой производительности.
- FastAPI — современный асинхронный веб-фреймворк
- Python 3.8+ — основной язык разработки
- SQLite — встроенная база данных
- GCC (g++) — компиляция C++17
- Python 3 — интерпретация Python кода
- Node.js — выполнение JavaScript
- asyncio — асинхронная обработка задач
- Pydantic — валидация данных
- Uvicorn — ASGI сервер
- ✅ Multi-language Support — C++, Python, JavaScript
- ✅ Асинхронная компиляция — queue-based worker system
- ✅ User Management — регистрация, аутентификация, файловая система
- ✅ Rate Limiting — защита от перегрузки (30 req/min)
- ✅ Metrics & Monitoring — статистика компиляций в реальном времени
- ✅ Security — sanitization кода, защита от опасных операций
- ✅ Timeout Control — ограничение времени выполнения (5s)
Python 3.8+
Node.js (для JavaScript)
GCC/G++ (для C++)
pip install -r requirements.txt
python main.py
Сервер запустится на http://192.168.3.29:9999
compile-hub/
├── main.py # FastAPI application, endpoints, worker
├── database.py # SQLite ORM, модели данных
├── compilers/
│ ├── base.py # Базовый класс компилятора
│ ├── cpp.py # C++ compiler wrapper
│ ├── python.py # Python interpreter wrapper
│ └── javascript.py # Node.js wrapper
├── requirements.txt # Python dependencies
└── README.md
- Queue-based processing — асинхронная очередь задач (max 100)
- Worker pattern — dedicated background worker
- Multi-compiler support — абстрактный интерфейс компиляторов
- Регистрация и аутентификация
- Персональная файловая система
- Контроль лимитов (количество файлов, длина кода)
Authentication:
POST /api/auth/register
— регистрацияPOST /api/auth/login
— входGET /api/auth/check-username
— проверка доступности username
File Management:
GET /api/files
— список файлов пользователяDELETE /api/files/{id}
— удаление файлаPATCH /api/files/{id}/move
— перемещение в папкуPOST /api/files/migrate
— миграция файлов
Compilation:
POST /api/compile/
— компиляция кода (с input)GET /api/compile/
— компиляция кода (query params)GET /api/code?fileId={id}
— получение кода файла
Monitoring:
GET /api/metrics
— метрики системы
- Code Sanitization — фильтрация опасных операций (
system
,exec
,eval
) - Timeout Protection — автоматическое прерывание (5 секунд)
- Output Limiting — максимум 1MB вывода
- Rate Limiting — 30 запросов в минуту на IP
- Password Hashing — SHA-256
Система собирает следующие метрики:
- Общее количество компиляций
- Количество неудачных компиляций
- Success rate (%)
- Среднее время компиляции
- Активные пользователи
- Размер очереди
Этот проект является некоммерческим и распространяется под лицензией MIT.
Деев Егор Викторович - Backend Developer
- GitHub: @EDeev
- Email: egor@deev.space
- Telegram: @Egor_Deev
Создано с ❤️ от вашего дорогого - deev.space ©
⭐ Если проект был полезен, поставьте звезду!