Hydro

Hydro

跨平台信息学评测系统 模块化设计功能丰富

Hydro是一款跨平台的信息学在线评测系统,采用模块化设计和插件系统,支持功能热插拔。系统提供单系统多空间功能,可满足不同班级或院校的独立管理需求。Hydro具备精细的权限控制、支持大规模使用、覆盖全面的题型,并提供丰富题库资源。该系统兼容多种竞赛赛制,易于扩展其他编程语言支持。

Hydro在线测评系统插件系统跨平台多空间Github开源项目

Hydro

GitHub Workflow Status hydrooj npm node-current GitHub contributors GitHub commit activity

Hydro 是一个高效信息学在线测评系统。易安装,跨平台,多功能,可扩展,有题库。

对于不熟悉 Linux 或是懒得运维的老师,我们也提供了免费开通即用的在线版本,
详情前往 https://hydro.ac 查看 操作指引

将安装命令粘贴到控制台一键安装,安装后注册首个用户自动获得超级管理员权限。
兼容主流 Linux 发行版,推荐使用 Debian 12,支持 arm64 设备(树莓派等)

LANG=zh . <(curl https://hydro.ac/setup.sh)

中文文档 / English

相关文档若说明的不够详细,请提交 Pull Request 或联系开发组说明。
bug 和功能建议请在 Issues 提出。

系统特点

模块化设计,插件系统,功能热插拔

Hydro 设计了一套模块化的插件系统,可以方便地扩展系统功能。
使用插件系统,可以在修改功能后,仍然保证系统的可升级性。
Hydro 的所有历史版本均可平滑升级到最新版本。

插件使用和开发指南,请前往文档 插件开发 章节。

跨平台兼容,数据一键备份/导入

Hydro 支持所有主流的 Linux 发行版,兼容 x86_64 和 arm64 架构设备,且均可一键安装。
Hydro 可在 树莓派 或是 Apple M1/M2 上正常运行。

使用 hydrooj backup 即可备份系统全部数据,使用 hydrooj restore 文件名 即可导入备份数据。 整个过程无需手工干预。

单系统多空间,不同班级/院校,分开管理

Hydro 提供了单系统多空间支持,可以方便地为不同的班级/年级/院校等创建独立的空间。
不同空间内除用户外数据默认隔离,且可分配独立管理员,互不干扰。
题目可跨域复制,在系统内仅占用一份空间。

粒度精细的权限系统,灵活调节

Hydro 的权限可以按比赛/作业分配给对应的用户,也可以将用户分组(班级),按组分配权限。 有关权限节点,可以查看 介绍 下方截图。

规模化支持,上千用户无压力,伸缩组秒级自动扩展

Hydro 系统本身是无状态的,这意味着你可以随意增删服务节点,而不会影响系统的正常运行。 评测队列会自动在当前在线的所有评测机间均衡分配。接入弹性伸缩组后,可根据服务器负载情况自动增删评测机。 不像其他系统,Hydro 会管理不同服务器间的测试数据缓存,按需拉取,做到评测机上线即用,无需手动同步数据。

全题型支持,跟随时代潮流

Hydro 支持所有题型。无论是传统题型,Special Judge,还是文件输入输出,提交答案题,IO 交互,函数交互,乃至选择填空题等, Hydro 都有相应的支持。安装相关运行环境后,Hydro 甚至可以做到:

  • 调用小海龟画图,与标准图片比对;
  • 调用 GPU 进行机器学习模型的评测;

更多的样例可前往 样例区 查看并下载。

丰富的题库

Hydro 支持导入常见格式的题库文件,包括 Hydro 通用的 zip 格式,HUSTOJ 导出的 FPS (xml) 格式题目,QDUOJ 导出的压缩包。
可以在 Hydro 题库 下载免费题库使用。
Hydro 同时支持 VJudge,这意味着你可以直接在系统内导入其他平台的题目,修改题面后编入自己的作业或比赛,快速搭建自己的题库体系。
当前支持的平台有:

  • 一本通编程启蒙:官方提供一本通编程启蒙题库,免费使用,参照压缩包内导入说明。
  • 深入浅出程序设计竞赛:官方提供洛谷《深入浅出程序设计竞赛(基础篇)》配套题库,免费使用,参照压缩包内导入说明。
  • UOJ:国内知名 OJ,国家集训队常用;
  • Codeforces:国外大型竞赛平台,大量高质量题目;
  • 洛谷:使用此功能需要向洛谷购买授权;
  • HDUOJ:杭州电子科技大学在线评测系统,其中包含多校训练题;
  • CSGOJ:广东省赛与湖南省赛赛题评测平台;
  • SPOJ:国内连接很不稳定,不推荐;
  • POJ:较为古董,服务器稳定性差;
  • YACS:上海市计算机学会竞赛平台,单账号每日提交有限制;
  • HUSTOJ:理论上支持所有 HUSTOJ 驱动的系统,但由于各个系统中 UI 有差异,通常需要手动适配。

多赛制支持

Hydro 支持多种赛制,包括 ACM/ICPC 赛制(支持封榜),OI 赛制,IOI 赛制,乐多赛制,以及作业功能。
在 IOI 和 OI 赛制下,支持订正题目功能,学生在赛后可以在题库中提交对应题目,其分数会在榜单旁边显示。
在 IOI 和 OI 赛制下,支持灵活时间功能,学生可以在设定的时间范围内,自选 X 小时参赛。

轻松添加其他编程语言

Hydro 的语言设置并非硬编码于系统中,而是使用了配置文件。 只要能写出对应语言的编译命令和运行命令,Hydro 都可以进行判题。

联系我们

Email:i@undefined.moe Telegram @undefinedmoe
Hydro 用户群:1085853538

注:加入用户群请先阅读《提问的智慧》
同时群内可能存在部分令您感到不适或感到冒犯的内容。若对此有顾虑请勿加群

<details> <summary><h2>更新日志(点击展开)</h2></summary>

Hydro 4.14.0 / UI 4.53.1

  • core: 修复能够越权查看隐藏题目的问题 [security]
  • ui: 优化提交记录详情富文本展示
  • ui: 支持头像缓存
  • ui: 禁止文本越界显示
  • vjudge: codeforces: 优化提交 ID 获取
  • ui: 默认禁用 sentry
  • core: 支持隐藏训练左侧用户栏
  • core: cli: 支持 eval
  • ui: 添加实验性 speculation rules 支持
  • core: 修复训练参加人数计数

Hydro 4.13.4 / UI 4.52.3

  • framework: 修复 404 返回页
  • ui: 优化用户权限页布局
  • vjudge: codeforces: 优化 katex 显示
  • core: cli: 修复 script 加载顺序
  • install: 默认禁用 yarn 更新检查
  • core: 添加 contest/edit 和 contest/del 钩子
  • ui: 支持展开测试点详情
  • core: 修复 IOI 赛制封榜
  • core: 修复缓存文件不会删除的问题
  • core: 导入题目时显示进度
  • ui: 修复含空格标签的筛选

Hydro 4.13.2 / UI 4.52.0

  • a11y: 优化网页测性能测试输出顺序
  • ui: 使用新 markdown 编辑器
  • core: 优化计分板逻辑
  • ui: 将缓存移至 IndexedDB
  • core: 转写 migration 为服务
  • ui: 优化 safari 浏览器兼容
  • core: 修复题目 maintainer 字段
  • judge: 支持 pretest 中使用文件 IO
  • vjudge: codeforces: 添加检查是否提交成功

Hydro 4.13.0 / UI 4.51.0

  • ui: 添加 sentry
  • core&ui: 支持显示当前编译器版本
  • core: 数据库索引优化
  • core: 文件复制使用软链接
  • a11y: 添加性能测试工具
  • utils: 支持识别大写文件扩展名
  • ui: 优化下拉菜单样式
  • core: 优化页面标题
  • register: 支持从文件读取原 sourcemap
  • ui: 修复站内消息推送
  • ui: ranking 页面添加说明
  • ui: 添加生成测试数据提示
  • framework: 从 core 解离
  • core: loader: 支持多 profile 切换
  • ui: 修复比赛计分板选手组显示
  • core: 重设比赛分数时自动重算分数

本版本同时引入下述插件 API 修改:

  • 移除了 app/load/${category} 钩子
  • 移除了 ctx.app (请使用 ctx.root)
  • 移除了 ctx.options (请使用 ctx.root.config)
  • serializer: 移除 showDisplayName 参数
  • 移除了 loader.addScript, loader.addon 函数
  • 移除了 Hydro.module.render (请使用 ctx.server.registerRenderer)
  • 移除了 lib/paginate 和 lib/rank (请使用 db.paginate 和 db.ranked)

Hydro 4.12.3 / UI 4.50.2

  • core: 将 API 模块移入 service
  • core: 比赛时提交被 hack 不触发整体重测
  • core: 将添加 pid match 的逻辑移入搜索中
  • ui: 修正 cssFilter
  • judge: builtin: 维护 callback 顺序
  • core: 优化邮件地址处理
  • ui: 显示提交记录长度
  • migrate: 支持仅为冲突用户设置随机邮件地址
  • core&ui: 支持自动整理 hack 输入
  • elastic: 优化模糊搜索
  • ui: 修复客观题中多选题载入答案出错的问题
  • core: 修复 hack 按钮

Hydro 4.12.0 / UI 4.50.0

  • core: 添加题目统计页
  • core: 在记录详情页显示测评进度
  • core: problem_list: 允许 hook 修改排序逻辑
  • migrate: 添加 poj 支持
  • core: api: 支持查询 rpInfo 与 avatarUrl
  • ui: 允许禁用 timeago
  • core: 修复 IOI(strict) 下取消成绩
  • ui: 比赛计分板中高亮自己与关注的用户
  • core: 修正比赛榜单 AC 量计算
  • core: 禁止重测自测提交
  • ui: 优化讨论编辑历史显示
  • core: 登录/注册后返回当前的 UserContext
  • core: 修复比赛计分板导出的 PERM_VIEW_DISPLAYNAME 检查
  • ui: 修复 domain_user 选择框的默认值
  • ui: 修复客观题加载上次答案
  • core: 重置密码时自动禁用 2FA
  • core: import: 题目包导入时支持导入题解和标程
  • core: 性能优化和漏洞修复

Hydro 4.11.2 / UI 4.49.8

  • core: 支持给比赛题目设置分数倍率 (#765)
  • workspace: 升级 ts 版本至 5.4.3
  • core: ws: 处理 JSON 解析异常
  • core: 允许向作业中上传文件 (#755)
  • ui: 在比赛管理页显示赛题的题目标签
  • judge: 修复部分情况下客观题返回结果异常的问题 (#770)
  • ui: 在 mdInline 中禁用部分标签 (#767)
  • core: 添加 R 语言和 cpp20 支持
  • ui: 在评测记录页显示峰值耗时
  • core: 修复比赛管理员无法查看代码的问题 (#764)
  • judge: 提供 hydrojudge terminal 入口 (#725)
  • core: 支持从 /nix/store 加载插件
  • core: 添加 contest/list 钩子
  • judge: vj4 支持
  • ui: 修复评测设置面板 testlib 选择 (#762)
  • fps-importer: 支持设置大小限制
  • core: 添加 PERM_VIEW_RECORD 权限组 (#753)
  • core: 修复未登录可以查看比赛公告的问题 (#756)
  • ui: 允许使用 Enter 键提交 2FA (#752)
  • core: 优化训练参与成员列表 (#750)
  • core&ui: 其他性能优化和漏洞修复

Hydro 4.11.0 / UI 4.49.6

  • core: 升级至

编辑推荐精选

讯飞智文

讯飞智文

一键生成PPT和Word,让学习生活更轻松

讯飞智文是一个利用 AI 技术的项目,能够帮助用户生成 PPT 以及各类文档。无论是商业领域的市场分析报告、年度目标制定,还是学生群体的职业生涯规划、实习避坑指南,亦或是活动策划、旅游攻略等内容,它都能提供支持,帮助用户精准表达,轻松呈现各种信息。

AI办公办公工具AI工具讯飞智文AI在线生成PPTAI撰写助手多语种文档生成AI自动配图热门
讯飞星火

讯飞星火

深度推理能力全新升级,全面对标OpenAI o1

科大讯飞的星火大模型,支持语言理解、知识问答和文本创作等多功能,适用于多种文件和业务场景,提升办公和日常生活的效率。讯飞星火是一个提供丰富智能服务的平台,涵盖科技资讯、图像创作、写作辅助、编程解答、科研文献解读等功能,能为不同需求的用户提供便捷高效的帮助,助力用户轻松获取信息、解决问题,满足多样化使用场景。

热门AI开发模型训练AI工具讯飞星火大模型智能问答内容创作多语种支持智慧生活
Spark-TTS

Spark-TTS

一种基于大语言模型的高效单流解耦语音令牌文本到语音合成模型

Spark-TTS 是一个基于 PyTorch 的开源文本到语音合成项目,由多个知名机构联合参与。该项目提供了高效的 LLM(大语言模型)驱动的语音合成方案,支持语音克隆和语音创建功能,可通过命令行界面(CLI)和 Web UI 两种方式使用。用户可以根据需求调整语音的性别、音高、速度等参数,生成高质量的语音。该项目适用于多种场景,如有声读物制作、智能语音助手开发等。

Trae

Trae

字节跳动发布的AI编程神器IDE

Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

AI工具TraeAI IDE协作生产力转型热门
咔片PPT

咔片PPT

AI助力,做PPT更简单!

咔片是一款轻量化在线演示设计工具,借助 AI 技术,实现从内容生成到智能设计的一站式 PPT 制作服务。支持多种文档格式导入生成 PPT,提供海量模板、智能美化、素材替换等功能,适用于销售、教师、学生等各类人群,能高效制作出高品质 PPT,满足不同场景演示需求。

讯飞绘文

讯飞绘文

选题、配图、成文,一站式创作,让内容运营更高效

讯飞绘文,一个AI集成平台,支持写作、选题、配图、排版和发布。高效生成适用于各类媒体的定制内容,加速品牌传播,提升内容营销效果。

热门AI辅助写作AI工具讯飞绘文内容运营AI创作个性化文章多平台分发AI助手
材料星

材料星

专业的AI公文写作平台,公文写作神器

AI 材料星,专业的 AI 公文写作辅助平台,为体制内工作人员提供高效的公文写作解决方案。拥有海量公文文库、9 大核心 AI 功能,支持 30 + 文稿类型生成,助力快速完成领导讲话、工作总结、述职报告等材料,提升办公效率,是体制打工人的得力写作神器。

openai-agents-python

openai-agents-python

OpenAI Agents SDK,助力开发者便捷使用 OpenAI 相关功能。

openai-agents-python 是 OpenAI 推出的一款强大 Python SDK,它为开发者提供了与 OpenAI 模型交互的高效工具,支持工具调用、结果处理、追踪等功能,涵盖多种应用场景,如研究助手、财务研究等,能显著提升开发效率,让开发者更轻松地利用 OpenAI 的技术优势。

Hunyuan3D-2

Hunyuan3D-2

高分辨率纹理 3D 资产生成

Hunyuan3D-2 是腾讯开发的用于 3D 资产生成的强大工具,支持从文本描述、单张图片或多视角图片生成 3D 模型,具备快速形状生成能力,可生成带纹理的高质量 3D 模型,适用于多个领域,为 3D 创作提供了高效解决方案。

3FS

3FS

一个具备存储、管理和客户端操作等多种功能的分布式文件系统相关项目。

3FS 是一个功能强大的分布式文件系统项目,涵盖了存储引擎、元数据管理、客户端工具等多个模块。它支持多种文件操作,如创建文件和目录、设置布局等,同时具备高效的事件循环、节点选择和协程池管理等特性。适用于需要大规模数据存储和管理的场景,能够提高系统的性能和可靠性,是分布式存储领域的优质解决方案。

下拉加载更多