TopGit
Đánh giá repo GitHub

Bruno: API Client Mã Nguồn Mở Cho REST & GraphQL

usebruno/bruno
BTopGit review image for usebruno/bruno
Review by Topgit.dev for usebruno/bruno, with GitHub repository stats and README context.
Nhận định nhanh

Bruno là một API client mã nguồn mở lưu mọi request dưới dạng file `.bru` dạng văn bản thuần trên máy, thay vì đồng bộ lên đám mây của nhà cung cấp. Nên dùng Bruno nếu bạn muốn collection API nằm trong Git cạnh source code; nên bỏ qua nếu team cần cộng tác thời gian thực qua đám mây, vì Bruno được thiết kế để hoạt động offline hoàn toàn.

Sao
★ 46.1k
Fork
⑂ 2.8k
Ngôn ngữ
JavaScript
Giấy phép
MIT
Chủ đề
API
Cập nhật
Aug 2026
Trang chủ
GitHub

Giải quyết thách thức của API client

Việc kiểm thử REST và GraphQL endpoint thường buộc bạn lưu collection request bên trong tài khoản đám mây riêng của công cụ, nên một thay đổi API không thể review qua pull request vì chẳng có file văn bản nào để diff. Collection của Bruno tồn tại dưới dạng file `.bru` trên ổ đĩa, nên thêm một endpoint mới hay đổi một header sẽ hiện ra như một diff Git bình thường, thay vì một thay đổi ẩn trong không gian làm việc đồng bộ của ai đó.

Bruno là gì?

Bruno là một API client mã nguồn mở dùng để kiểm thử REST và GraphQL, xây dựng như ứng dụng desktop thay vì công cụ chạy trên trình duyệt. Bruno lưu mỗi request thành file văn bản thuần `.bru` trên ổ đĩa thay vì trong tài khoản đám mây. Nên chọn Bruno nếu bạn muốn file nằm trên máy mình; nên bỏ qua nếu bạn muốn kiểm thử API ngay trên trình duyệt mà không cần cài gì cả.

Các tính năng chính của Bruno

  • Lưu mỗi API request thành file văn bản thuần `.bru` trong một thư mục trên ổ đĩa, thay vì dùng định dạng độc quyền hoặc lưu trên đám mây.
  • Hoạt động với Git hoặc bất kỳ hệ thống quản lý phiên bản nào khác, nên collection API được diff và review như phần còn lại của codebase.
  • Có gói Bruno CLI riêng (`@usebruno/cli`) để chạy collection ngoài giao diện đồ họa — cài bằng `npm install -g @usebruno/cli` rồi gọi từ script hay một bước trong pipeline.
  • Phát hành image Docker chính thức cho CLI trên Docker Hub và GitHub Container Registry, với bản build `alpine` và `debian` cho cả `linux/amd64` lẫn `linux/arm64`, hữu ích trong CI/CD.
  • Cài đặt dưới dạng binary cho Mac, Windows và Linux, hoặc qua trình quản lý gói như Homebrew, Chocolatey, Scoop, winget, Snap, Flatpak và Apt.
  • Chạy offline theo thiết kế. README nói không có kế hoạch bổ sung tính năng đồng bộ đám mây, không bao giờ.
  • Hỗ trợ kiểm thử cả REST lẫn GraphQL trong cùng một client, theo các topic graphql-client và rest-api của repo.
Số sao GitHub của repo này thay đổi thế nào theo thời gian. Nguồn: star-history.com.Xem lịch sử sao

Cài đặt Bruno

Bruno có sẵn dưới dạng file cài đặt (binary) cho Mac, Windows và Linux từ trang web của dự án, hoặc qua trình quản lý gói: `brew install bruno` trên Mac, `choco install bruno` hay `winget install Bruno.Bruno` trên Windows, và `snap install bruno` hay `flatpak install com.usebruno.Bruno` trên Linux (gói Apt và AUR cũng được nêu trong README). Bruno CLI là gói riêng, cài qua `npm install -g @usebruno/cli`, và image Docker chính thức được phát hành trên Docker Hub và GitHub Container Registry để chạy trong CI/CD mà không cần cài Node.js cục bộ.

Điểm mạnh

  • Collection là file văn bản thuần `.bru`, nên bạn có thể `git diff`, tạo branch và merge chúng như bất kỳ file source nào khác.
  • Không cần tài khoản hay đăng nhập đám mây để dùng client cốt lõi — README coi đây là lựa chọn bảo vệ dữ liệu riêng tư có chủ đích, không phải tính năng còn thiếu.
  • CLI và image Docker cho phép chạy collection không cần thao tác tay trong CI/CD, chứ không chỉ dùng tương tác.
  • Cấp phép theo MIT, nên không có gì mập mờ khi dùng trong pipeline thương mại.

Những điều cần lưu ý khi dùng Bruno

  • Chế độ offline-only là vĩnh viễn theo thiết kế — README nói không có kế hoạch bổ sung đồng bộ đám mây, không bao giờ, nên team cần cộng tác thời gian thực trên diện rộng phải tự dựng lớp đồng bộ riêng, ví dụ qua một Git remote dùng chung.
  • README không nêu số phiên bản, chu kỳ phát hành hay changelog, nên chỉ đọc mô tả repo thì khó biết một tính năng cụ thể đã ổn định tới đâu.
  • Một số tính năng nằm trong các bản trả phí riêng — README dẫn tới trang pricing cho 'tính năng bổ sung', nhưng không liệt kê rõ trong README cái gì miễn phí, cái gì trả phí.

So sánh Bruno với các API client khác

Postman — client dựa trên tài khoản, ưu tiên đám mây, chính là đối trọng mà README của Bruno nhắm tới; trưởng thành hơn nhưng gắn collection của bạn vào đám mây của Postman thay vì file cục bộ.Insomnia — một client GUI REST/GraphQL lâu đời khác với quy trình kiểm thử tương tác tương tự, nhưng không có mô hình lưu trữ dạng văn bản thuần, thân thiện với Git như Bruno.Hoppscotch — API client mã nguồn mở chạy trên trình duyệt dưới dạng ứng dụng web được lưu trữ, thay vì cài một client desktop như Bruno.

Câu hỏi thường gặp về Bruno

Bruno có phải API client miễn phí không?

Bruno miễn phí và mã nguồn mở theo giấy phép MIT, README nói phần lớn tính năng của Bruno là miễn phí. Ngoài ra có các bản trả phí riêng cho team muốn thêm tính năng ngoài client cốt lõi.

Bruno có hỗ trợ đồng bộ đám mây không?

Bruno không hỗ trợ đồng bộ đám mây — Bruno chỉ hoạt động offline, và đội phát triển đã nói rõ không có ý định bổ sung đồng bộ đám mây ở bất kỳ thời điểm nào, để giữ dữ liệu collection trên máy bạn.

Collection của Bruno có thể quản lý phiên bản được không?

Collection của Bruno quản lý phiên bản được: mỗi request lưu thành file văn bản thuần `.bru` trong một thư mục trên ổ đĩa, nên Git hay bất kỳ hệ thống quản lý phiên bản nào khác đều theo dõi được.

Bruno CLI dùng để làm gì?

Bruno CLI cho phép chạy các request trong một collection mà không cần mở giao diện đồ họa, tiện cho việc kiểm thử lặp lại theo script. Cài bằng `npm install -g @usebruno/cli`, rồi chạy lệnh như `bru run` hoặc `bru run folder --env Local`.

Bruno so với Postman thì thế nào?

Mô tả của chính Bruno gọi nó là lựa chọn thay thế nhẹ hơn cho Postman: thay vì tài khoản đồng bộ đám mây, Bruno giữ mỗi request trong một file `.bru` cục bộ mà bạn có thể commit vào Git cùng code.

Bruno dùng giấy phép gì?

Bruno phát hành theo giấy phép MIT, một giấy phép mã nguồn mở dễ dãi, không giới hạn việc dùng cho mục đích thương mại.

Trường hợp sử dụng phù hợp nhất

  • Giữ collection API của team trong cùng repo Git với backend mà nó kiểm thử, để mọi thay đổi request hiện ra khi review code.
  • Chạy collection không cần giao diện trong CI/CD bằng Bruno CLI, ví dụ `bru run folder --env Local`, để phát hiện endpoint hỏng trước khi merge.
  • Kiểm thử API trên laptop không có kết nối internet ổn định, vì Bruno không cần tài khoản đám mây để hoạt động.
  • Chạy CLI trong container Docker ở pipeline không được phép cài Node.js hay npm trên máy build.

Nên dùng Bruno khi nào — và khi nào nên bỏ qua

Nên dùng Bruno nếu team bạn đã quen sống trong Git và coi collection kiểm thử API cũng là một phần đáng được review trong pull request, giống code. Nên bỏ qua nếu bạn cần cộng tác thời gian thực có sẵn cho team phân tán mà không muốn tự dựng quy trình Git riêng — Bruno không có, và theo chính README của dự án, sẽ không bao giờ có tính năng đồng bộ đám mây.

Repo liên quan

Nguồn & ghi công

Thông tin lấy từ repo GitHub usebruno/bruno (github.com/usebruno/bruno), bao gồm README và metadata của repo.

Dữ liệu GitHub · đồng bộ lần cuối 6 thg 8, 2026Đánh giá bởi Henry
Về TopGit

Chưa chắc bruno có hợp với bạn?

Để ChatGPT, Claude hoặc Perplexity tìm hiểu giúp — bấm bên dưới và xem AI nói gì về bruno.

GitHub