Bruno — API Client แบบ Git-Native ที่เก็บทุกอย่างเป็นไฟล์
เวลา dev team ต้องเทส API — เครื่องมือที่ทุกคนนึกถึงคือ Postman กับ Insomnia
แต่ปัญหาคลาสสิกที่เจอกันแทบทุกทีม:
"Postman collection อยู่ไหน?" — "ใน account ผมไง"
"ขอ invite หน่อย" — "เดี๋ยวส่ง link ให้... เอ๊ะ หมด free tier แล้ว"
นี่คือ pain point ที่ทำให้คนจำนวนมากมองหาเครื่องมือใหม่ — และหนึ่งในนั้นคือ Bruno
Bruno คืออะไร
Bruno เป็น API client แบบ desktop app (มีทั้ง macOS, Linux, Windows) ที่มีแนวคิดแตกต่างจาก Postman โดยสิ้นเชิง:
| Postman | Bruno | |
|---|---|---|
| เก็บข้อมูลที่ไหน | Cloud account | ไฟล์ใน project (Git repo) |
| ต้อง login ไหม | ✅ ต้อง | ❌ ไม่ต้อง |
| Collection format | JSON (binary-ish) | Plain text (Bru files) |
| Collaborate | ผ่าน Postman cloud | ผ่าน Git (PR, diff, review) |
| Open source | ❌ | ✅ (GitHub: 45K+ stars) |
| Offline | ไม่ค่อยได้ | ✅ ทำงานออฟไลน์ได้เต็มที่ |
หัวใจของ Bruno คือ "API Client ไม่ใช่ Platform" — มันคือเครื่องมือธรรมดาที่เก็บข้อมูลเป็นไฟล์ — เหมือนที่ dev ทั่วไปเก็บโค้ด
จุดเด่น
1. Collection คือไฟล์ — เก็บใน Git ได้
my-project/
├── src/
├── bruno/
│ ├── users/
│ │ ├── GET users.bru
│ │ ├── POST create user.bru
│ │ └── DELETE user.bru
│ ├── auth/
│ │ └── POST login.bru
│ └── bruno.json
└── .git/
ทุก API request เป็นไฟล์ .bru — plain text — diff ได้, PR review ได้, merge ได้ — เหมือนโค้ด
meta {
name: GET users
type: http
seq: 1
}
get {
url: https://api.example.com/users
body: none
auth: bearer
}
2. ไม่มี Cloud — ข้อมูลอยู่กับคุณ
Bruno ไม่เคยส่งข้อมูลขึ้น server — ทุกอย่างอยู่บนเครื่องคุณ ทั้ง request, response, environment variables
สำหรับทีมที่ทำงานกับข้อมูล sensitive (banking, healthcare, government) — ข้อนี้สำคัญมาก
3. ใช้ Git เป็น Collaboration Tool
แทนที่จะ "invite teammate เข้า workspace" (แบบ Postman) — คุณแค่:
git add bruno/
git commit -m "add user API collection"
git push
เพื่อน git pull → เปิด Bruno → เห็น collection เดียวกันทันที
4. Environment Variables — แบบเดียวกับที่ dev ใช้
# environments/production.bru
vars {
base_url: https://api.production.com
api_key: {{PROD_API_KEY}}
}
เปลี่ยน environment ด้วยการคลิก — ไม่ต้องแก้ request ทีละตัว
5. Scripting — Pre/Post Request
// Pre-request script
const now = new Date().toISOString();
bru.setVar("timestamp", now);
// Post-response script — test assertion
bru.assert(bru.getVar("status") === 200);
bru.assert(bru.getVar("body").length > 0);
ใช้ JavaScript แบบเดียวกับที่ dev ใช้อยู่แล้ว
วิธีใช้ — เริ่มใน 2 นาที
# ติดตั้ง
# macOS
brew install --cask bruno
# Linux (AppImage หรือ Snap)
sudo snap install bruno
# Windows — Download จาก usebruno.com
1. สร้าง Collection
File → New Collection → ตั้งชื่อ → เลือกโฟลเดอร์
Bruno จะสร้างโฟลเดอร์ที่มี bruno.json ให้
2. สร้าง Request
คลิกขวาที่ Collection → New Request
กรอก:
- Method: GET, POST, PUT, DELETE...
-
URL:
https://api.example.com/users -
Headers:
Content-Type: application/json - Body: JSON body (ถ้าเป็น POST/PUT)
3. กด Send
Ctrl+Enter (หรือ ⌘+Enter)
เห็น response ทันที — status code, headers, body, response time
4. จัดการ Environment
สร้าง environment → ใส่ variables → เลือก environment จาก dropdown
เทียบกับเครื่องมืออื่น
| Bruno | Postman | Insomnia | Hoppscotch | Thunder Client | |
|---|---|---|---|---|---|
| GitHub Stars | 45K+ | — (closed) | 35K+ | 65K+ | VS Code ext |
| Open Source | ✅ | ❌ | ✅ | ✅ | ✅ (บางส่วน) |
| Cloud-free | ✅ | ❌ | ⚠️ | ✅ (self-host) | ✅ |
| Git-native | ✅ | ❌ | ❌ | ❌ | ✅ (VS Code) |
| Desktop App | ✅ | ✅ | ✅ | ❌ (web) | ❌ (VS Code) |
| Plain text format | ✅ (.bru) | ❌ (JSON binary) | ❌ (JSON) | ❌ (JSON) | ❌ |
| ราคา | ฟรี + Gold ($6/เดือน) | ฟรี + $12/เดือน | ฟรี + $8/เดือน | ฟรี + $8/เดือน | ฟรี |
จัดอันดับความนิยม (GitHub Stars — กรกฎาคม 2026)
| อันดับ | เครื่องมือ | Stars | Type |
|---|---|---|---|
| 🥇 | Hoppscotch | 65K+ | Web-based, self-host ได้ |
| 🥈 | Bruno | 45K+ | Desktop, Git-native |
| 🥉 | Insomnia | 35K+ | Desktop, มี cloud option |
| 4 | HTTPie | 34K+ | CLI + Desktop |
| 5 | Postman | — (closed source) | Desktop + Web |
💡 Postman ไม่มี GitHub repo เพราะเป็น closed source — วัดกันที่ user base: Postman ~30M users, Bruno ~2M downloads, Insomnia ~5M downloads
Bruno เหมาะกับใคร
| คุณ... | ลอง Bruno ไหม? |
|---|---|
| ทำโปรเจกต์ที่ใช้ Git อยู่แล้ว | ✅ เก็บ collection ใน repo เดียวกัน |
| ทำงานกับข้อมูล sensitive | ✅ ทุกอย่าง local — ไม่มี cloud |
| เบื่อ Postman จอแดง "upgrade to pro" | ✅ ฟรี — จ่ายเฉพาะ enterprise features |
| อยากให้ทีม PR review API collection | ✅ diff ได้, review ได้ |
| ต้องการ collaboration แบบ real-time | ⚠️ ยังไม่มี — ต้องใช้ Git workflow |
| ใช้ Postman mock server, monitor, runner | ❌ Bruno ยังไม่มีฟีเจอร์พวกนี้ |
สรุป
Bruno ไม่ได้พยายามแข่งว่าใคร feature เยอะกว่า — มันชนะด้วยแนวคิดที่ว่า "API collection คือโค้ด — เก็บใน Git, review ใน PR, deploy พร้อมโค้ด"
สำหรับ dev ที่เชื่อว่า "ทุกอย่างควรอยู่ใน repo" — Bruno คือคำตอบ
📚 อ่านต่อ:
- Bruno Docs — official guide
- Bruno GitHub — 45K+ stars
- Bruno vs Postman — comparison page
Top comments (0)