使用rust实现的高性能api测试工具

Swift HTTP Tester - 像雨燕一样快速的API测试工具

为什么开发 Swift?

作为开发者,我们经常需要测试 API 接口。Postman 很棒,但它有时候感觉有点"重"。打开慢、占用内存大、还需要登录...我只是想快速测试一个接口,为什么要等那么久?

所以我决定自己动手,开发一个**轻量级、启动快、内存占用小**的 HTTP 测试工具。给它取名 Swift,就是希望它能像雨燕一样快速敏捷!

技术栈

选择技术栈时,我做了个有趣的组合:

  • **后端语言**:Rust(性能卓越、内存安全)

  • **前端框架**:Dioxus(Rust 编写的 React-like 框架)

这意味着整个应用都是 Rust 编写的,编译成单个可执行文件,无需任何运行时依赖!

功能特性

Swift HTTP Tester 已经实现了作为 HTTP 测试工具的核心功能:

✅ **完整的 HTTP 方法支持**:GET、POST、PUT、DELETE、PATCH、HEAD、OPTIONS

✅ **灵活的请求体**:

  • None

  • JSON(带格式化/压缩按钮)

  • Text

  • Form Data(支持文件上传)

  • x-www-form-urlencoded

  • Binary(文件上传)

  • Raw(自定义 Content-Type)

✅ **实用功能**:

  • 自定义请求头

  • 可调整大小的文本框(拖动右下角)

  • JSON 自动格式化显示响应

  • 显示请求耗时和状态码

令人惊喜的体积

最让我自豪的是它的体积!编译后的二进制文件只有:

  • **macOS ARM64**:2.9MB

  • **macOS x64**:3.2MB

  • **macOS Universal**:6.1MB

没错,只有 3MB 左右!启动速度更是瞬间完成,真正做到了"Swift"这个名字的承诺。

效果预览

!Swift HTTP Tester界面(img.png)

界面简洁直观,左侧配置请求,右侧查看响应,一切都很直接,没有复杂的功能堆砌。

如何获取

直接下载

对于 macOS 用户,可以直接在 `dist/` 目录下载对应架构的二进制文件:

  • Apple Silicon 用户:`swift-macos-arm64`

  • Intel 用户:`swift-macos-x64`

  • 通用版本:`swift-macos-universal`

从源码构建

如果你想自己构建,或者需要在 Windows/Linux 上使用:

```bash

克隆项目

git clone https://github.com/yourusername/swift

cd swift

构建发布版本

cargo build --release

运行

./target/release/swift

```

项目还提供了构建脚本:

  • macOS/Linux:`./build.sh`

  • Windows:`.\build.ps1`

项目结构

```

swift/

├── src/

│ ├── app.rs # 主应用 UI

│ └── http_client.rs # HTTP 客户端逻辑

├── Cargo.toml # 项目配置

├── build.sh # Unix 构建脚本

├── build.ps1 # Windows 构建脚本

├── BUILD.md # 详细构建指南

└── dist/ # 构建输出目录

```

未来计划

这只是第一个版本,我计划继续添加:

  • 请求历史记录

  • 保存请求为集合

  • 环境变量支持

  • 更多主题配色

欢迎参与

项目采用 MIT 许可证,完全开源。无论你是想:

  • 尝试这个工具

  • 报告 Bug

  • 提交 PR 添加功能

  • 或者只是想看看 Rust + Dioxus 如何构建桌面应用

都欢迎来 GitHub 仓库逛逛!

**项目地址**:https://github.com/IdeasForLife/swift

附上智谱ai解析:https://zread.ai/IdeasForLife/swift

相关推荐
1024奇点1 天前
【仓颉语言入门 · 第二篇 第 22 课】
开发语言·ide·开源
Warren2Lynch1 天前
C4 模型详解:利用 Visual Paradigm 可视化软件架构的综合指南
开发语言·uml
Knight_AL1 天前
Java 文件下载时文件名中的 `#` 被转换成 `%23`?一次 URL 编码与解码问题排查
java·开发语言
FRing031 天前
vue2干货总结2(v-bind、v-for、v-model、指令修饰符、v-bind操作class和style)
开发语言·前端·vue.js·vue2
by209991 天前
C++ 智能指针的所有权与使用
开发语言·c++·经验分享
砚底藏山河1 天前
python量化自定义周期 K 线合成
java·开发语言·数据库·python·金融
IT召唤狮1 天前
开源企业级零信任项目Pangolin,零信任能挡住PHP核弹漏洞吗?
开发语言·开源·php
知已难寻1 天前
03 · OpenStack的计算管理 Nova
运维·服务器·开发语言·云原生·云计算·openstack·开源软件
Rover Ramble1 天前
C++ 用互斥锁实现读写锁
开发语言·c++
码流子1 天前
移动收费怎么做?手持终端+App+收费中心的架构实践
java·开发语言·架构