# hydro-dev/hydro

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/hydro-dev-hydro).**

6,667 stars · 454 forks · TypeScript · AGPL-3.0

## Links

- GitHub: https://github.com/hydro-dev/Hydro
- Homepage: https://hydro.js.org/
- awesome-repositories: https://awesome-repositories.com/repository/hydro-dev-hydro.md

## Topics

`acm-icpc` `cpp` `hydro` `java` `mixed-judge` `mongodb` `node` `noip` `oi` `oj` `online-judge` `onlinejudge` `python` `vijos` `vj5`

## Description

Hydro is an online judge platform and competitive programming management system. It provides the infrastructure to host programming contests, manage a library of programming problems, and evaluate code submissions against predefined test cases and time limits.

The system utilizes a distributed code execution engine that scales judging tasks across multiple worker nodes to process high volumes of submissions. It is built as a modular judge framework, employing a plugin-based architecture that allows for the extension of system functionality without modifying the core source code.

The platform covers administrative capabilities including role-based access control with granular permissions and multi-tenant space isolation to segment users and data. It also includes tools for programming contest management with leaderboard control, problem set imports from external platforms, and configuration-driven language support to define compilation and execution logic.

## Tags

### Education & Learning Resources

- [Competitive Programming Platforms](https://awesome-repositories.com/f/education-learning-resources/competitive-programming-platforms.md) — Provides a complete platform for hosting programming contests and evaluating code submissions against test cases.
- [Competition Management Systems](https://awesome-repositories.com/f/education-learning-resources/competition-management-systems.md) — Provides a tool for organizing programming competitions with leaderboard management and granular access controls.
- [Management Tools](https://awesome-repositories.com/f/education-learning-resources/competitive-programming-contests/management-tools.md) — Provides comprehensive tools to organize competitions, including leaderboard freezing and flexible scheduling. ([source](https://cdn.jsdelivr.net/gh/hydro-dev/hydro@master/README.md))
- [Online Judges](https://awesome-repositories.com/f/education-learning-resources/educational-resources/courses-training-certifications/interactive-learning-platforms/online-judges.md) — Provides administrative tools for managing problem libraries, user accounts, and automated grading.
- [Modular Frameworks](https://awesome-repositories.com/f/education-learning-resources/educational-resources/courses-training-certifications/interactive-learning-platforms/online-judges/modular-frameworks.md) — Provides a plugin-based architecture for extending judge functionality without modifying core code.
- [Isolated Learning Spaces](https://awesome-repositories.com/f/education-learning-resources/technical-domain-education/computer-science-education/isolated-learning-spaces.md) — Creates isolated spaces with specific roles for students and teachers to track academic progress.

### DevOps & Infrastructure

- [Distributed Job Execution](https://awesome-repositories.com/f/devops-infrastructure/distributed-job-execution.md) — Implements a scalable infrastructure that distributes code evaluation tasks across multiple worker nodes.
- [Task Distribution Scaling](https://awesome-repositories.com/f/devops-infrastructure/worker-scaling/task-distribution-scaling.md) — Distributes judging tasks across multiple independent worker nodes to scale processing capacity.
- [Load-Based Fleet Scaling](https://awesome-repositories.com/f/devops-infrastructure/server-load-management/load-based-fleet-scaling.md) — Automatically adjusts the number of active evaluation workers based on the system queue and real-time load.

### Programming Languages & Runtimes

- [Sandboxed Code Evaluators](https://awesome-repositories.com/f/programming-languages-runtimes/source-code-compilers/sandboxed-code-evaluators.md) — Provides a sandboxed environment to compile and execute user submissions and compare results against expected outputs. ([source](https://cdn.jsdelivr.net/gh/hydro-dev/hydro@master/README.md))
- [Distributed Evaluation](https://awesome-repositories.com/f/programming-languages-runtimes/source-code-compilers/sandboxed-code-evaluators/distributed-evaluation.md) — Scales the judging system across multiple worker nodes to process high volumes of submissions efficiently.

### Software Engineering & Architecture

- [Modular Plugin Architectures](https://awesome-repositories.com/f/software-engineering-architecture/modular-plugin-architectures.md) — Implements a modular plugin architecture to extend system capabilities without affecting core updates. ([source](https://cdn.jsdelivr.net/gh/hydro-dev/hydro@master/README.md))
- [Plugin-Based Architectures](https://awesome-repositories.com/f/software-engineering-architecture/software-architecture/architectural-patterns/plugin-module-systems/modular-plugin-architectures/plugin-based-architectures/plugin-based-architectures.md) — Employs a plugin-based architecture that allows adding new features without modifying the core source code.
- [Language Support Definitions](https://awesome-repositories.com/f/software-engineering-architecture/integration-extensibility/extensibility/plugin-architectures/domain-specific/language-support-definitions.md) — Implements configuration-driven definitions that allow the system to support various programming languages for compilation and execution.

### Development Tools & Productivity

- [Execution Configurations](https://awesome-repositories.com/f/development-tools-productivity/build-configuration-languages/execution-configurations.md) — Allows defining supported languages by specifying compilation and execution commands within configuration files. ([source](https://cdn.jsdelivr.net/gh/hydro-dev/hydro@master/README.md))

### Networking & Communication

- [Collaborative Space Isolation](https://awesome-repositories.com/f/networking-communication/communication-protocols-architectures/communication-paradigms/group-membership-management/room-management/collaborative-space-isolation.md) — Segments users and data into independent environments with dedicated administrative controls and segregated resource access. ([source](https://cdn.jsdelivr.net/gh/hydro-dev/hydro@master/README.md))

### Security & Cryptography

- [Granular Permission Systems](https://awesome-repositories.com/f/security-cryptography/granular-permission-systems.md) — Provides a role-based authorization system with granular permissions assigned to users or groups for contests and assignments. ([source](https://cdn.jsdelivr.net/gh/hydro-dev/hydro@master/README.md))
- [Multi-Tenant Isolation](https://awesome-repositories.com/f/security-cryptography/multi-tenant-isolation.md) — Provides multi-tenant isolation to segment users and data into independent environments with dedicated controls.
- [Role-Based Access Control](https://awesome-repositories.com/f/security-cryptography/role-based-access-control.md) — Manages system permissions by assigning granular rights to users and groups based on specific roles and contests.
