Worked from 2023-10-14 to 2024-01-20
🏷 Tags
🚦 Status
PausedSometime in 2023, I was dissatisfied with Postman and I decided to try and create a simple HTTP client in Rust and React. My main frustrations with Postman were that:
- * It phones home
- * Many features were behind having an account (I know it’s free, but hate the principle)
- * It was slow at times
Ultimately, I’m still using Postman since I didn’t spend much time on this project, but it was for sure something interesting to build with Tauri and Reqwest .
Small POC
Initially, I had created a small proof of concept using only Rust with Tauri and Leptos for the frontend. It was a fun experiment, but I wanted to have something up and running quickly, so since I knew React more than Leptos, I decided to go with that. But find a GIF of the POC below:
New UI
I spent a bit more time on this one, using Tailwind.css for the styling and React for the frontend. I also used Tanstack Query for some very nice interaction with Tauri. Here’s a screenshot of the UI:
Capabilities
The features are limited, but has the necessities, such as:
- * a dynamic URL bar (where params added are automatically filled in the table)
- * all HTTP methods
- * setting request headers
- * setting request body
- * viewing response headers
- * viewing response body
Performance
I was surprisingly getting slower responses than with Postman, but the startup delay is way smaller. I suspect the difference is due to having not a proper pool of clients and reusing them (although I tried to implement something like that).
On my Mac, the executable is only 11MB in size and takes around ~75MB of memory (which is a bit less than the ~400MB size for Postman on my machine and the ~500MB of memory it takes).
I’d gladly take that 97% reduction in size and 85% reduction in memory usage for a bit of a performance hit.
Future
I don’t plan on working on this project anymore, but it may change in the future. I’m not sure if I’ll ever use it, but it was a fun project to build.
🗞 Source Code
- Available on
- * GitHub (BenJeau/reqwest_ui)
🛠 Technologies
Languages
* TypeScript - 🔍
Other
* Tanstack Query - 🔍