소개
Resonance는 DBMobile이 MIT 라이선스로 공개한 오픈소스 API 클라이언트입니다. 로컬에서 동작하며 계정과 클라우드 동기화가 필요 없고, 텔레메트리도 수집하지 않습니다. Tauri와 Rust로 만들어진 단일 데스크톱 앱에서 REST, GraphQL, gRPC, WebSocket, MQTT, SSE 등 다양한 프로토콜을 한 곳에서 다룰 수 있도록 설계된 점이 특징입니다.
상세정보
다양한 프로토콜 지원
- REST/HTTP: HTTP/1.1과 HTTP/2를 지원하며 JSON, 폼 데이터, URL 인코딩, 텍스트, 바이너리, 멀티파트 파일 업로드 등 모든 본문 모드를 다룹니다. DNS·TCP·TLS·TTFB·다운로드 단계별 타이밍 분석과 쿠키 표시, 설정 가능한 타임아웃도 함께 제공됩니다.
- GraphQL: 구문 강조와 자동 포맷을 갖춘 전용 쿼리·변수 에디터, 그리고 graphql-transport-ws 기반의 라이브 서브스크립션을 지원합니다.
- gRPC: 서버 리플렉션(v1/v1alpha)으로 서비스를 자동 탐지하고, 로컬 .proto 파일을 불러올 수 있습니다. Unary, 서버 스트리밍, 클라이언트 스트리밍, 양방향 스트리밍 네 가지 RPC 종류와 TLS·mTLS 옵션, 메타데이터·트레일러 표시를 제공합니다.
- WebSocket: 탭별로 유지되는 영구 연결과 핸드셰이크 헤더, 메시지 트랜스크립트 표시를 지원합니다.
- Server-Sent Events: retry 지시를 존중하는 자동 재연결, Last-Event-ID 재개, 라이브 연결 상태 표시를 제공합니다.
- MQTT: 평문·TLS 브로커, 와일드카드를 포함한 토픽 구독·발행, QoS 0/1/2, retain 플래그, 라이브 연결 상태를 지원합니다.
가져오기·내보내기·모킹
- OpenAPI 3.0(YAML/JSON), Postman v2.0/v2.1 컬렉션과 환경, cURL 명령을 가져올 수 있고 OpenAPI(YAML/JSON)와 Postman 형식으로 내보낼 수 있습니다.
- 9개 언어(cURL, Python, JavaScript Fetch/Axios, Node.js, Go, PHP, Ruby, Java)로 요청을 코드로 생성할 수 있습니다.
- Markdown 또는 HTML 형식의 API 문서를 컬렉션으로부터 생성할 수 있습니다.
- OpenAPI 스키마를 기반으로 응답을 생성하는 내장 모의 서버를 제공하며, 엔드포인트별 커스텀 응답 본문과 지연, 요청 로그 기능을 포함합니다.
자동화와 테스트
- 사전 요청·테스트 스크립트는 Boa 엔진 기반 샌드박스 JavaScript에서 실행되며 request 변경, expect() 단언, environment 접근, sendRequest()를 통한 요청 체이닝이 가능합니다.
- 컬렉션 러너는 순서 지정, 변수 체이닝, 오류 시 중단, 지연, 저장된 실행 설정을 지원합니다.
- {{ variable }} 템플릿, {{$uuid}}·{{$timestamp}}·랜덤 데이터 등 동적 변수, 환경 간 즉시 전환, 가져오기·내보내기를 제공합니다.
보안
- Bearer, Basic, API Key, OAuth 2.0, Digest, NTLM, AWS Signature v4 인증을 요청·폴더·컬렉션 단위로 구성할 수 있습니다.
- 호스트별 PEM 인증서와 커스텀 CA 신뢰를 통한 mTLS를 지원합니다.
- 자격 증명과 비밀 변수는 GNOME Keyring/KWallet, macOS Keychain, Windows Credential Manager 등 OS 키체인에 저장되며 Git으로 공유하는 컬렉션 파일에는 기록되지 않습니다.
- HTTP/HTTPS/SOCKS 프록시와 인증, 우회 목록을 지원합니다.
워크플로우와 사용성
- 워크스페이스 탭과 검색·재실행이 가능한 요청 히스토리를 제공합니다.
- Ctrl/⌘ 기반 플랫폼 인지 키보드 단축키, 라이트·다크·시스템 3종 테마와 9가지 액센트 컬러, 영어·독일어·스페인어·프랑스어·이탈리아어·브라질 포르투갈어 등 6개 언어 인터페이스를 지원합니다.
Windows 설치
winget을 사용한 설치가 공식 README에 안내되어 있으며, 패키지 식별자는 DBMobile.Resonance입니다.
winget install DBMobile.Resonance또는 GitHub 릴리스 페이지에서 .exe 설치 파일을 내려받아 설치할 수 있습니다.
Linux 설치
- Flathub: flatpak install flathub io.github.db_mobile.resonance
- Snap: snap install db-mobile-resonance (Secret Service에 접근해 비밀 변수를 암호화하려면 snap connect db-mobile-resonance:password-manager-service 필요)
- AUR: yay -S resonance-bin
- 그 외 AppImage 또는 .deb 패키지를 릴리스 페이지에서 내려받을 수 있습니다.
macOS 설치
- Homebrew: brew tap db-mobile/resonance 후 brew install –cask resonance
- 또는 .dmg 인스톨러를 내려받아 설치합니다.
소스에서 빌드
git clone https://github.com/db-mobile/resonance.git
cd resonance
npm install
npm run dev # 개발 모드, 핫 리로드
npm run build:tauri # 프로덕션 빌드계정이 필요한가요?
필요하지 않습니다. 로컬 우선 zero-account 방식으로 동작하므로 계정 생성이나 로그인 없이 사용할 수 있습니다.
어떤 프로토콜을 지원하나요?
REST/HTTP, GraphQL(서브스크립션 포함), gRPC, WebSocket, Server-Sent Events, MQTT를 하나의 클라이언트에서 다룹니다.
컬렉션은 어디에 저장되나요?
컬렉션, 환경 변수, 히스토리, 설정이 사람이 읽을 수 있는 파일 형태로 로컬 디스크에 저장되어 Git으로 버전 관리하고 공유할 수 있습니다.
시스템 요구사항
Windows에서는 Windows 10 이상이 필요하며, winget으로 설치하는 경우 관리자 권한 없이 NSIS 설치본을 사용할 수 있습니다. 소스에서 직접 빌드하려면 Node.js v22 이상과 Rust(stable)가 필요하고, 추가로 Tauri의 플랫폼 의존성(Linux는 webkit2gtk·openssl·ayatana 등 개발 패키지, macOS는 Xcode Command Line Tools, Windows는 MSVC Build Tools)이 요구됩니다. 또한 자동 업데이트는 AppImage와 직접 다운로드 방식에서만 동작하며, 패키지 관리자를 통해 설치한 경우 각 패키지 매니저의 업데이트 메커니즘을 따릅니다.


