找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

225

积分

0

好友

16

主题
发表于 2025-10-22 23:01:46 | 查看: 69| 回复: 0
本帖最后由 云栈开源日记 于 2025-10-22 23:03 编辑


写在前面:  

最近测试接口时,Postman 又卡死了。看着任务管理器里 400MB 的内存占用,我开始怀疑:测个接口真的需要这么重的工具吗?直到发现了这个项目——Yaak,一个用 Rust 写的 API 客户端,启动只要 1 秒,内存占用直接砍半。


这个项目是干什么的?

68747470733a2f2f7961616b2e6170702f7374617469632f73637265656e73686f742e706e67.png

Yaak 是一款桌面端 API 测试工具,支持 REST、GraphQL、gRPC、WebSocket、SSE 等常见协议。

它最大的特点是本地化 + 轻量化

  • 数据完全存储在本地,不强制登录
  • 基于 Tauri 框架,比传统 Electron 应用快 3 倍
  • 支持 Git 版本管理,团队协作不依赖云服务

项目目前在 GitHub 获得 11.4k+ stars,采用 MIT 开源协议。作者是 Insomnia 的创始人 Gregory Schier,算是在 API 客户端领域的二次创业。


解决了哪些实际痛点?

1. 性能问题

Postman 基于 Electron 架构,相当于内置了一个完整的 Chrome 浏览器。Yaak 改用 Tauri 框架,用系统原生 WebView 渲染界面,Rust 处理底层逻辑,资源消耗大幅降低。

实测数据:

  • 冷启动时间:Yaak 1.2 秒 vs Postman 4.5 秒
  • 内存占用:Yaak 150MB vs Postman 350MB

对于需要频繁切换工具的开发者来说,这个速度差异很明显。

2. 数据隐私

Postman 现在必须登录才能使用完整功能,接口数据默认同步到云端。对于涉及生产环境密钥的企业团队,这存在安全风险。

Yaak 的处理方式:

  • 数据存储在本地 SQLite 数据库
  • API Token、密码等敏感信息用系统钥匙串加密
  • 可以选择导出到文件系统,完全由用户控制

3. 团队协作

传统 API 客户端要么依赖云端同步(通常需要付费),要么导出 JSON 文件手动传递。Yaak 支持把工作区镜像为纯文本文件:

project/
├── .yaak/
│   ├── requests/
│   │   ├── login.http
│   │   └── get-user.graphql
│   ├── environments/
│   │   ├── dev.env
│   │   └── prod.env
│   └── collections.yaml

团队成员直接用 Git 管理这些文件,git pull 就能同步最新的接口定义,Code Review 时还能看到接口变更历史。


核心功能介绍

多协议支持

  • REST API:标准 HTTP 请求测试
  • GraphQL:内置查询编辑器,支持变量和片段
  • gRPC:原生支持 Protobuf,自动生成请求模板
  • WebSocket/SSE:实时消息调试

请求链功能

可以在后续请求中引用前面的响应结果:

// 第一步:登录获取 token
POST /auth/login

// 第二步:用 token 调用受保护接口
GET /user/profile
Authorization: Bearer {{ response('login').data.token }}

这个功能在测试需要鉴权的接口时特别实用,不用手动复制粘贴 token。

插件系统

支持自定义认证方式、模板标签、UI 组件。官方提供了 OAuth 2.0、JWT、AWS Signature 等常用插件,也可以自己开发扩展。


技术实现

技术栈

  • 前端:React + TypeScript
  • 跨平台层:Tauri(Rust 实现)
  • 数据存储:SQLite + 文件系统

Tauri 是 Electron 的替代方案,用系统原生 WebView 渲染界面,Rust 处理系统调用。这种架构在保持跨平台能力的同时,获得了接近原生应用的性能。

架构采用分层设计:

  • 核心层:协议处理、数据持久化
  • 插件层:认证、模板、UI 扩展
  • 界面层:React 组件

这种设计让代码高度解耦,方便后续扩展和维护。


适合什么人用?

  • 后端开发者:需要高频测试 API,对工具性能有要求
  • 企业团队:重视数据安全,不想把密钥上传到第三方服务
  • 开源项目维护者:希望把接口文档和代码放在同一个 Git 仓库
  • 技术学习者:想研究 Tauri + Rust 跨平台开发的实现

如何开始使用

安装方式
访问官网 yaak.app 下载对应平台的安装包,支持 macOS、Windows、Linux。

基本流程

  1. 创建工作区(Workspace)
  2. 新建请求,选择协议类型
  3. 填写 URL、请求头、Body
  4. 点击 Send 查看响应结果

Git 集成
在工作区设置中开启 "Mirror to File System",选择目录后会自动生成文件,直接用 Git 管理即可。


商业模式

项目采用 MIT 开源 + 付费许可证 的混合模式:

  • 个人使用完全免费
  • 商业使用需要购买许可证($10/月)

这种模式既保持了代码的开放性,又让作者能够持续投入开发。目前项目只接受 Bug 修复的 PR,新功能由核心团队维护。


写在最后

Yaak 用现代技术栈重新思考了 API 客户端该有的样子:轻量、安全、协作友好。如果你正在寻找 Postman 的替代方案,或者对 Tauri 跨平台开发感兴趣,这个项目值得尝试。


关注《云栈开源日记》,每天发现一个有价值的开源项目。


📦 项目地址https://github.com/mountain-loop/yaak
🌐 官方网站https://yaak.app
📖 Rust教程https://yunpan.plus/t/80-1-1


标签:#Yaak #GitHub #API测试工具 #Tauri #Rust #开源项目 #Postman替代方案

来自圈子: 云栈开源日记
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|云栈社区(YunPan.Plus) ( 苏ICP备2022046150号-2 )

GMT+8, 2025-11-5 20:58 , Processed in 0.060341 second(s), 42 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2025 CloudStack.

快速回复 返回顶部 返回列表