字
字节笔记本
2026年2月22日
Yaak - 开源桌面 API 客户端
本文介绍 Yaak,一个基于 Tauri、Rust 和 React 构建的桌面端 API 客户端。它支持 REST、GraphQL、WebSocket、gRPC 和 Server-Sent Events 等多种协议,以隐私优先、离线优先为设计理念,是 Postman 和 Insomnia 的有力替代品。
项目简介
Yaak 是由 Greg Schier 开发的开源 API 客户端,采用 MIT 许可证。该项目在 GitHub 上已获得超过 17.9k stars,是一个活跃维护的高质量项目。
与其他 API 客户端不同,Yaak 坚持以下核心理念:
- 隐私优先:无遥测、无数据收集
- 离线优先:无需联网即可使用全部功能
- 无云锁定:数据完全由用户掌控
- 社区驱动:通过社区购买许可证和赞助维持开发
核心特性
🌐 支持多种 API 协议
- REST:完整的 HTTP 请求支持
- GraphQL:内置 GraphQL 查询编辑器
- WebSocket:实时双向通信
- gRPC:高性能 RPC 框架支持
- Server-Sent Events (SSE):服务器推送事件
📥 数据导入与迁移
Yaak 支持从主流 API 工具导入数据:
- Postman Collections
- Insomnia
- OpenAPI / Swagger
- cURL 命令
🔐 安全与认证
- OAuth 2.0 / JWT / Basic Auth
- 自定义认证插件
- 敏感值加密存储
- 操作系统密钥链集成
📁 工作空间管理
- 嵌套文件夹组织请求
- 环境变量(dev/staging/prod)
- 文件系统镜像(支持 Git 版本控制)
- Dropbox 同步支持
🎨 扩展与定制
- 模板标签(UUID、时间戳等动态值)
- 内置主题 + 自定义主题
- 插件系统(认证、模板标签、UI 扩展)
- JSONPath / XPath 响应过滤
技术栈
| 技术 | 用途 |
|---|---|
| Tauri | 跨平台桌面应用框架 |
| Rust | 后端核心逻辑 |
| React | 前端用户界面 |
| TypeScript | 类型安全的 JavaScript |
安装指南
下载安装
Yaak 提供多种安装方式:
macOS
bash
brew install --cask yaakLinux (Flatpak)
bash
flatpak install flathub app.yaak.yaakWindows
从 GitHub Releases 下载 .msi 安装包
从源码构建
bash
# 克隆仓库
git clone https://github.com/mountain-loop/yaak.git
cd yaak
# 安装依赖
npm install
# 启动开发服务器
npm run tauri dev
# 构建生产版本
npm run tauri build快速开始
1. 创建工作空间
打开 Yaak 后,点击左侧边栏的 "+" 按钮创建新工作空间。
2. 配置环境变量
在工作空间设置中定义环境变量:
text
BASE_URL: https://api.example.com
API_KEY: your-secret-key3. 发送第一个请求
http
GET {{BASE_URL}}/users
Authorization: Bearer {{API_KEY}}4. 使用模板标签
http
POST {{BASE_URL}}/users
Content-Type: application/json
{
"id": "{% uuid %}",
"name": "John Doe",
"createdAt": "{% timestamp %}"
}使用示例
REST API 测试
http
# 获取用户信息
GET https://jsonplaceholder.typicode.com/users/1
# 创建新帖子
POST https://jsonplaceholder.typicode.com/posts
Content-Type: application/json
{
"title": "foo",
"body": "bar",
"userId": 1
}GraphQL 查询
graphql
query GetUser($id: ID!) {
user(id: $id) {
name
email
posts {
title
}
}
}变量:
json
{
"id": "1"
}WebSocket 连接
javascript
// 连接到 WebSocket 服务器
wss://echo.websocket.org
// 发送消息
{
"message": "Hello, WebSocket!"
}与竞品对比
| 特性 | Yaak | Postman | Insomnia | Bruno |
|---|---|---|---|---|
| 开源 | ✅ | ❌ | ❌ | ✅ |
| 离线优先 | ✅ | ❌ | ❌ | ✅ |
| 无遥测 | ✅ | ❌ | ❌ | ✅ |
| 轻量级 | ✅ | ❌ | ❌ | ✅ |
| 多协议 | ✅ | ✅ | ✅ | 部分 |
相关资源
- 官方网站:yaak.app
- GitHub 仓库:mountain-loop/yaak
- 文档中心:yaak.app/docs
- 反馈与问题:feedback.yaak.app
许可证
Yaak 采用 MIT 许可证开源,你可以自由使用、修改和分发。
分享: