Lighter and quicker, measured
We ran Swastik Codes and four popular API clients side by side on the same machine, the same way, and wrote down every number. Here is what we found, how we measured it and how you can check it yourself.
The short version
- Uses 26 to 46% less memory. The Swastik Codes desktop app settled at 434 MB a minute after launch. Postman used 585 MB, Bruno 615 MB, Insomnia 656 MB and Hoppscotch 800 MB.
- Starts quickly. Its window was up in 0.4 seconds, and it needed 2.7 seconds of CPU to start, against 7.9 to 53 seconds for the others.
- A small download. The Windows installer is 11 MB: Hoppscotch's is 45 MB, Bruno's 117 MB, Postman's 204 MB and Insomnia's 500 MB.
- A light web app. The first load of swastik.codes/app transfers 382 KB, against 6.6 MB for hoppscotch.io.
The desktop app is built with Tauri and a native Rust engine instead of a bundled copy of Chromium, which is where most of the difference comes from.
Desktop memory and startup
Each app ran alone in an identical Ubuntu 24.04 container with a 1440×900 virtual display and a fresh profile, opened to its first screen and left idle. We measured three rounds and report the median.
| App (Linux desktop) | Memory after 60 s | CPU to start | Window visible | Processes |
|---|---|---|---|---|
| Swastik Codes 0.1.0 | 434 MB | 2.7 s | 0.4 s | 3 |
| Postman 12.33.4 | 585 MB | 12.6 s | 1.1 s | 9 |
| Bruno 4.3.0 | 615 MB | 7.9 s | 4.6 s | 6 |
| Insomnia 13.3.1 | 656 MB | 53.3 s | 2.9 s | 8 |
| Hoppscotch 26.9.0 | 800 MB | 8.7 s | 1.3 s | 3 |
- Memory is the proportional set size (PSS) of every process the app started: pages shared between processes are split between them, so nothing is counted twice. Memory varied by less than 2% between rounds for each app.
- CPU to start is the total CPU time the app's processes used in the first 60 seconds.
- Window visible is the time from launch until the first window was mapped on screen. It is not the time until the app is fully interactive, which we did not measure.
The numbers come from software rendering on a server without a GPU. On a desktop with a graphics card all of these apps use different amounts, so treat the table as a comparison under equal conditions, not as the figure you will see in your task manager.
Download size
The size of each vendor's current x64 installer, as listed on its own release page on 23 October 2026.
| App | Windows installer | Linux .deb |
|---|---|---|
| Swastik Codes 0.1.0 | 11 MB | 15 MB |
| Hoppscotch 26.9.0 | 45 MB (.msi) | 47 MB |
| Bruno 4.3.0 | 117 MB | 100 MB |
| Postman 12.33.4 | 204 MB | none (199 MB .tar.gz) |
| Insomnia 13.3.1 | 500 MB | 408 MB |
The Linux AppImage of Swastik Codes is larger (105 MB) because an AppImage carries its own copy of WebKitGTK; the .deb and .rpm use the one your system already has.
Web app weight
Bytes transferred on a cold first load of the web app (compressed, as sent over the network), the part of it that is JavaScript, and the JavaScript heap in use once the page settled. Three loads each in Chromium, identical every time.
| Web app | Transferred | JavaScript | Requests | JS heap |
|---|---|---|---|---|
| swastik.codes/app | 382 KB | 312 KB | 22 | 5 MB |
| hoppscotch.io | 6.6 MB | 5.3 MB | 45 to 48 | 70 MB |
The rest of Swastik Codes (the GraphQL, gRPC and other protocol clients, the code editor, the runner) loads when you first open it, so you only download what you use. We did not include Postman's web app because it requires signing in before anything loads.
Check it yourself
Each desktop app ran in a container built from this Dockerfile, one app per run:
FROM ubuntu:24.04
RUN apt-get update && apt-get install -y --no-install-recommends xvfb xdotool procps dbus-x11 \
libgtk-3-0t64 libnss3 libasound2t64 libgbm1 libxss1 libxtst6 libsecret-1-0 libnotify4 \
libcups2t64 libatspi2.0-0t64 libdrm2 libxshmfence1 libxkbfile1 libwebkit2gtk-4.1-0Inside it, the app starts on a virtual display (Xvfb :99 -screen 0 1440x900x24); Electron apps get --no-sandbox because the container runs as root. After 30 and 60 seconds a script adds up Pss from /proc/<pid>/smaps_rollup and the CPU fields of /proc/<pid>/stat for every process except the display server, and xdotool search --onlyvisible records when the first window appears. The web numbers are the sum of encodedDataLength of every network response in Chromium's DevTools protocol, plus performance.memory.usedJSHeapSize.
We are glad to send the complete scripts. If you get different results, or think a comparison is unfair, tell us and we will update this page.
Measured on 23 October 2026 on an 8-core x86-64 server with 32 GB of RAM.