找回密码
立即注册
搜索
发回帖 发新帖

6192

积分

0

好友

755

主题
发表于 2025-10-22 23:01:46 | 查看: 769| 回复: 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替代方案

来自圈子: 云栈开源日记



上一篇:akfamily / AKShare:让量化研究告别数据费的开源方案
下一篇:2025年AI版Java全栈开发就业班课程 SpringAI+微服务+项目实战一站式课程
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-10-4 04:28 , Processed in 0.074403 second(s), 45 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

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