中文 | English
A fast, native HTTP API client in Rust and GPUI: one codebase for the desktop and a self-hosted web version.
Features · Install · Web version · Deployment guide · Development
- Native and fast. macOS, Windows and Linux, drawn on the GPU with GPUI. A project with thousands of APIs opens at once.
- Projects, folders and APIs. Search by name or pinyin, drag to reorder, pin the APIs you use most (⌘/Ctrl-1…9), group projects on the home page.
- Requests. Query, headers, Basic auth, and JSON, form, multipart, XML or plain-text bodies; bulk-edit any list as text.
- Variables and functions. Environments, custom variables and global headers per project. Template functions such as
{{g(api, data.token)}}(a field of another API's latest response),{{value(name)}},{{timestamp()}},{{md5(…)}},{{sha256(…)}},{{base64.readFile(…)}}, with hints while you type. - Responses. Time split into DNS, TCP, TLS, server and transfer; HTTP/1.1 and HTTP/2; JSON raw as it came, indented, or as a tree; a history per API; cookies kept and sent; redirects followed when you want them.
- cURL and imports. Paste a cURL command to make an API, copy any request as cURL; import Postman, Insomnia, Swagger 2 / OpenAPI 3 and cURL; export an API, a folder or a project.
- Your data. Back up and restore on the desktop, in the same format as the earlier Tauri app.
- Teams. A self-hosted web version with accounts by invitation, teams and per-project roles. The desktop app signs in to the same server and works on shared projects offline, syncing when you choose.
- Light and dark themes, English and Chinese.
Download from Releases. Each release lists its files in SHA256SUMS; sha256sum -c SHA256SUMS --ignore-missing checks the ones you downloaded.
| Platform | File | Notes |
|---|---|---|
| macOS (Apple silicon) | cyberapi-<version>-aarch64-apple-darwin.dmg |
Signed and notarized. Drag CyberAPI to Applications. |
| macOS (Intel) | cyberapi-<version>-x86_64-apple-darwin.dmg |
|
| Windows (x86_64) | cyberapi-<version>-x86_64-pc-windows-msvc.zip |
Unzip and run cyberapi.exe. Not signed: SmartScreen may ask once. |
| Linux (x86_64, arm64) | cyberapi_<version>_amd64.deb, cyberapi_<version>_arm64.deb |
Debian, Ubuntu and their relatives. |
| Linux (x86_64, aarch64) | cyberapi-<version>-<arch>-unknown-linux-gnu.tar.gz |
The binary alone. Needs glibc 2.35 or newer. |
A nightly prerelease is built from main every night when it has moved.
The macOS app has the same name and identifier as the earlier Tauri app, so installing it replaces the old one. On first launch it copies the old app's data, if there is one, and leaves the old files as they were. What is copied is the database (projects, folders, APIs, variables) and the cookies. What the old app kept in its web view is not: its settings (theme, language, timeouts), pinned APIs, open folders, chosen tabs, response history and the order of a project's top level. Those start afresh, and backups made by the old app restore as they always did.
The data lives in CyberAPI under the platform's data directory: ~/Library/Application Support on macOS, %APPDATA% on Windows, and ~/.local/share (as cyberapi) on Linux.
The web version is the same app compiled to WebAssembly and served by cyberapi-bridge, one binary that also keeps the accounts and projects in PostgreSQL or MySQL and sends the page's requests. It is an image on Docker Hub for linux/amd64 and linux/arm64, vicanso/cyberapi-web (latest, each version, and nightly from main), and a tarball on each release.
docker run -p 7380:7380 \
-e CYBERAPI_BRIDGE_STORE=postgres://user:password@host:5432/cyberapi \
vicanso/cyberapi-webWith no account yet the log shows a setup token; open the page and make the first administrator with it. The administrator invites everyone else. The login cookie is Secure, so put HTTPS in front of it, or add --insecure-cookie after the image name to try it over plain HTTP.
The deployment guide covers Docker Compose, the binary with systemd, HTTPS behind nginx (also under a sub-path), every option, which addresses requests may reach, accounts and invitations, signing in from the desktop, upgrades and backups.
Rust (the version in rust-toolchain.toml is picked up by rustup). On Linux, first: libfontconfig1-dev libxcb-xfixes0-dev libxkbcommon-dev libxkbcommon-x11-dev libwayland-dev libssl-dev.
make dev # run the desktop app (a debug build uses its own database)
make lint # fmt check and clippy, as CI
make test # every test
make desktop-dist # package for this machine (cargo install --locked cargo-bundle@0.11.0)The web version needs the nightly toolchain with the wasm32-unknown-unknown target (picked up from cyberapi-web/rust-toolchain.toml) and wasm-pack (cargo install wasm-pack); its release form also needs wasm-opt (binaryen).
make db-up # PostgreSQL and MySQL in local containers (Apple's `container`)
make web-bundle # build the page
make bridge # http://127.0.0.1:7380/, setup token `dev`
make check-web # the wasm build's check
make web-dist # the deployment tarball; `make docker` builds the imageHow the code is laid out, and why, is in docs/architecture.md; how server projects sync, in docs/server-sync.md (both in Chinese). Releases are cut with make version and a v* tag; see CHANGELOG.md.