https://github.com/themosthigh/hermes
A simple native REST client for all desktop operating systems (built with gtk-rs)
https://github.com/themosthigh/hermes
desktop-app gtk gtk4-rs http libadwaita libadwaita-rs linux macos postman relm4 rust
Last synced: 6 days ago
JSON representation
A simple native REST client for all desktop operating systems (built with gtk-rs)
- Host: GitHub
- URL: https://github.com/themosthigh/hermes
- Owner: themosthigh
- Created: 2026-05-14T07:15:27.000Z (about 1 month ago)
- Default Branch: main
- Last Pushed: 2026-05-24T20:51:43.000Z (27 days ago)
- Last Synced: 2026-06-14T20:34:27.958Z (6 days ago)
- Topics: desktop-app, gtk, gtk4-rs, http, libadwaita, libadwaita-rs, linux, macos, postman, relm4, rust
- Language: Rust
- Homepage:
- Size: 73.2 KB
- Stars: 7
- Watchers: 0
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Hermes: God of Thieves & Messengers
This is a very tiny REST client that currently only supports GET requests.

## But WHY???
This is a continuation of the [pat](https://github.com/themosthigh/pat) project I started a few years ago, but I quicky got the ick for webviews.
1. Postman froze my friend's macbook. MacOS skill issue to be honest
2. There are many beautiful and very funciton Electron-base solutions that take up +250MB of my storage
3. I don't have friends and ...
4. I needed something to do for the weekend.
## Project setup
Follow the [Get started](https://rust-lang.org/learn/get-started/) guide to get rust setup.
#### Linux
(I haven't yet confirmed these instructions)
```bash
# RHEL/Fedora
sudo dnf install gtk4-devel libadwaita-devel meson desktop-file-utils pkgconf-devel
# Arch
sudo pacman -S gtk4 libadwaita meson desktop-file-utils pkg-config
```
#### MacOS
On macos you will need to run this verbatim
```sh
brew install gtk4 libadwaita meson desktop-file-utils gtksourceview5
```
## Running the project
```rs
cargo run # obviously
```
## Progress so far
I cannot stress this enough, I've been tempted to quit and opt for a different solution such as [gtkx](https://gtkx.dev/) or [flutter](https://flutter.dev).
Rust + GTK is a tall order. That said, we have the following working:
#### Request manipulation
- [x] Custom url
- [x] Custom request methods
- [x] Custom headers (not the best experience but we're getting somewhere)
- [x] Custom JSON body
- [ ] Query params tracking
- [ ] File requests
- [ ] Custom request body
- [ ] Change type
- [ ] Update formatting
#### Data exporting
- [ ] Import request
- [x] Paste `cURL`
- [x] `.http` file
- [ ] `.rest` file
- [ ] Export request
- [ ] `cURL` string
- [ ] Save as `.http` file
- [ ] Save as `.rest` file
#### Response presentation
- [ ] Custom repsonse type
- [ ] Trigger formatting
#### Quality of life features
- [ ] Global keyboard shortcuts
- [ ] Open workspaces
- [ ] Environment variable support
- [ ] Multiple windows
- [ ] Multiple tabs
- [ ] Home Screen based on history

The goal here is to get somewhere between [HTTPie](https://httpie.io/) and [Cartero](https://cartero.danirod.es/)