
Bruno 入门指南本地文件优先的开源 API 客户端用 Git 协作调试与测试接口【免费下载链接】brunoOpensource IDE For Exploring and Testing APIs (lightweight alternative to Postman/Insomnia)项目地址: https://gitcode.com/GitHub_Trending/br/brunoBruno브루노是一个面向 API 探索与测试的开源 IDE其最核心的设计理念是离线优先 文件即集合所有集合直接保存在本地文件系统文件夹中使用名为 Bru 的纯文本标记语言描述 API 请求天然兼容 Git 与任意版本控制工具。本文基于 docs/readme/readme_kr.md 的官方描述结合仓库源码与测试用例系统介绍 Bruno 的定位、核心数据格式、多平台安装方式、离线设计以及用 Git 协作的完整工作流。Bruno 是什么一个颠覆传统 API 工具现状的开源 IDEBruno 是一个旨在革新 Postman 等同类工具现状的开源 API 客户端提供与主流 API 调试工具相当的请求构造、发送与响应查看能力但数据存储与协作方式截然不同。从仓库结构看该产品是典型的 monorepo 架构见根目录 package.json通过 npm workspaces 管理多个相互独立的包packages/bruno-app前端界面React含组件、主题、国际化资源packages/bruno-electronElectron 桌面壳负责 IPC、本地存储与系统集成packages/bruno-langBru 语言的解析工具链packages/bruno-cli命令行运行器可在 CI/CD 中执行集合packages/bruno-common、packages/bruno-requests、packages/bruno-converters等请求执行、格式转换、公共类型等支撑模块。也就是说你在桌面端看到的每一次请求发送背后是由这些可独立测试的模块协同完成的。官方对其定位的一句话可以概括为一个属于开发者、可自由掌控数据的轻量级 API 探索与测试 IDE。核心设计集合就是本地文件夹请求就是 .bru 文本文件1. 文件即集合Bruno 与云端账户 服务器数据库式 API 工具最大的区别在于它把你的集合Collection直接当作文件系统中的一个文件夹文件夹里的每个请求是独立的纯文本文件环境变量、文件夹、子请求都以真实目录结构呈现。这意味着不需要登录、没有厂商锁定的云端存储创建、删除、重命名、移动请求等价于操作普通文件集合目录可用任意编辑器查看可读性极强。仓库中的 e2e 测试夹具完整展示了这一形态例如 tests/asserts/fixtures/collection/ping.bru 就是一个最简 GET 请求meta { name: ping type: http seq: 1 } get { url: {{host}}/ping body: none auth: none }对应的环境变量文件同样以.bru文本保存在集合的environments子目录中见 tests/asserts/fixtures/collection/environments/Local.bruvars { host: https://testbench-sanity.usebruno.com }2. Bru描述 API 请求的纯文本标记语言Bru 是 Bruno 自研的纯文本标记语言用于保存 API 请求的一切信息。官方在文档中明确强调其为 plain text markup language——文件后缀统一为.bru。从 packages/bruno-lang 及v1/、v2/两套解析器源码结构可以推断Bru 语法经过了两代演进。当前主流形式是缩进 花括号分组的风格如上面的ping.bru常见区块section包括区块用途关键字段meta请求元信息name、typehttp/graphql/grpc/ws、seqget/post/put/delete等请求方法与传输配置url、body、auth、headers、paramsvars环境变量声明任意key: value对script请求前/请求后脚本与断言无packages/bruno-lang/example/request.bru中还可以看到字段级写法与多 body 类型的示例body(typejson)、body(typegraphql)、params、headers、script等是理解 Bru 表达能力的好素材type http-request name Send Bulk SMS method GET url https://api.textlocal.in/bulk_json?apiKeysecret...messagehello body-mode json seq 1 headers 0 transaction-id {{transactionId}} /headers script function onResponse(request, response) { expect(response.status).to.equal(200); } /script从源码结构看packages/bruno-lang 的v1/src、v2/src下各有完整的 parser/lexer 实现与配套测试如v2/tests下大量.bru/.json用例对这正是Bru 是可编程、可解析的文本格式这一事实的底层支撑——解析结果会进入bruno-schema、bruno-schema-types定义的类型系统最终交给 packages/bruno-requests 真正发起网络请求。离线优先数据永远留在你的设备上Bruno 是**纯离线offline-only**工具官方立场非常明确永远没有计划为 Bruno 增加云端同步功能。团队珍视用户的数据隐私坚信 API 集合数据应当停留在用户自己的设备上。这一决策带来的实际影响是你的请求、环境变量、脚本不存在任何第三方服务器上同步问题完全交给 Git 之类的版本控制工具去解决即便产品停止演进集合目录也只是一堆可读的纯文本文件不会被困在任何专有格式或数据库中。安装 Bruno桌面端多平台支持Bruno 提供 Mac、Windows、Linux 三个平台的二进制安装包下载同时也支持通过各主流包管理器安装。以下为官方文档给出的完整安装命令需联网执行# On Mac via Homebrew brew install bruno # On Windows via Chocolatey choco install bruno # On Linux via Snap snap install bruno # On Linux via Apt sudo mkdir -p /etc/apt/keyrings sudo apt update sudo apt install gpg curl curl -fsSL https://keyserver.ubuntu.com/pks/lookup?opgetsearch0x9FA6017ECABE0266 \ | gpg --dearmor \ | sudo tee /etc/apt/keyrings/bruno.gpg /dev/null sudo chmod 644 /etc/apt/keyrings/bruno.gpg echo deb [archamd64 signed-by/etc/apt/keyrings/bruno.gpg] http://debian.usebruno.com/ bruno stable \ | sudo tee /etc/apt/sources.list.d/bruno.list sudo apt update sudo apt install bruno需要说明的几点Apt 安装走的是 Bruno 官方 Debian 源步骤中先导入签名密钥保存为/etc/apt/keyrings/bruno.gpg再写入源列表bruno.list最后apt install bruno。若签名或源文件被改动apt update会因signed-by校验失败而报错这是安全的预期行为。官方英文主 READMEreadme.md还补充了 Scoop、winget、Flatpak、AUR 等安装渠道中文用户可按需查阅。除桌面应用外官方文档中亦将运行环境扩展到了命令行与 CI 场景见下文进一步了解。一套集合多平台运行Bruno 不只是桌面应用。官方将其能力覆盖到运行在哪里的多个目标桌面端、命令行Bruno CLI、VSCode 插件以及基于文件的 OpenCollection(.yml) 集合格式。无论你身处哪个界面操作的始终是同一份磁盘上的集合文件。用 Git 协作你的 API 集合正因为集合是普通文件夹、请求是普通文本文件Bruno 的团队协作方式回归到了开发者最熟悉的模型Git或你喜欢的任何版本控制系统。整个协作流与代码评审完全一致把集合目录纳入 Git 仓库每个成员像改代码一样在分支上增删改.bru文件提交 MR/PR进行逐行 diff 审查合并后用git pull把团队最新的 API 约定同步到本地。一个直观的证据是仓库自身的测试与夹具管理方式无论是tests/下成百上千的.bru请求文件还是packages/bruno-tests中的集合全部以文件形式存在于版本库中可供 diff、回溯与自动化执行。这种文本化 Git的模式让 API 集合具备了代码同等的可审计性谁在什么时候改了什么接口、为什么改都有迹可循。进一步了解命令行自动化与仓库配套作为深入学习的入口官方仓库内还有大量与之配套的一手资料与工具Bruno CLInpm install -g usebruno/cli后可在集合目录执行bru run、bru run request.bru、bru run folder --env Local等命令把同一套集合跑成自动化测试并接入 CI完整命令与退出码约定见 packages/bruno-cli/readme.md其用法在官方英文 README 的 Bruno CLI 一节有对应说明。发布到新包管理器若你希望把 Bruno 打包进你所在生态的包管理器如某个 Linux 发行版仓库请参照 publishing.md 的发布指南这也是本文档明确指引的官方流程。贡献代码韩国语贡献指南位于 docs/contributing/contributing_kr.md无法写代码时也可以通过提交 bug 与功能请求来帮助项目。许可协议本项目采用 MIT 协议详见 license.mdBruno 名称与 Logo 分属相应商标/素材许可范围Logo 素材来源于 OpenMoji遵循 CC BY-SA 4.0使用与分发时请注意署名。小结回顾 Bruno 的三条主线本地优先集合即文件夹、请求即 Bru 文本数据不过任何云端、工具开放依赖 Git 完成协作与版本管理、跨端复用桌面、CLI、VSCode 共享同一份文件集合。无论你是想摆脱账号体系束缚的个人开发者还是需要把 API 集合纳入团队代码评审流程的团队Bruno 提供的都是把 API 当代码来管的朴素而彻底的方案。安装完成后创建第一个集合把它放进你的 Git 仓库你就能立刻体会到这种工作流的差异。【免费下载链接】brunoOpensource IDE For Exploring and Testing APIs (lightweight alternative to Postman/Insomnia)项目地址: https://gitcode.com/GitHub_Trending/br/bruno创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考