beltram avatar

beltram/stubr

71 9 2
Rust Apache-2.0
创建于 5 年前 最后更新 1 年前

AI 综合评分

52 B 级
代码质量
48
文档质量
54
社区健康
50
项目活跃
56
创新性
46

项目简介

Rust 实现的 WireMock 替代品,用于 HTTP API 模拟和测试。

项目摘要

主题

Stubr 是一个用 Rust 重写的 WireMock,为 Rust 生态提供轻量、高性能的 HTTP 模拟服务器,解决测试中依赖外部 API 的痛点。

核心分点总结

  1. Rust 原生:完全用 Rust 编写,享受内存安全与零成本抽象,适合嵌入 Rust 测试流程。

  2. WireMock 兼容:支持 WireMock 的 JSON 映射格式,迁移成本低,可无缝替换 Java 版 WireMock。

  3. 异步高性能:基于 Tokio 异步运行时,轻松处理高并发模拟请求,响应延迟极低。

  4. 灵活匹配:提供请求头、路径、查询参数、body 等多种匹配规则,支持正则和 JSONPath。

  5. 测试友好:可作为独立进程运行,也可通过库形式集成到 Rust 测试代码中,实现自包含的集成测试。

行动指南

  1. 当你需要在 Rust 项目中模拟外部 HTTP 服务(如支付网关、第三方 API)进行集成测试时,选择 Stubr。
  2. 从 WireMock 迁移?直接复用已有的 JSON 映射文件,只需将 Java 进程替换为 Stubr 二进制。
  3. 快速上手:cargo install stubr 启动服务器,或通过 stubr::Mock 宏在测试中声明式定义模拟端点。

金句总述

用 Rust 的速度和可靠性,让 HTTP 模拟测试不再依赖 Java 虚拟机。

故事性收尾

曾经,每次运行测试都要启动一个沉重的 Java WireMock 进程,等待数秒,内存占用惊人。现在,你只需在测试代码中写几行声明,一个轻量、瞬起的 Rust 模拟服务器便悄然就绪,测试套件如闪电般跑完,你端起咖啡,发现杯子还是热的。

相关项目推荐