Worked from 2023-10-14 to 2024-01-20

🏷 Tags

🚦 Status

Paused

Sometime 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:

  1. * It phones home
  2. * Many features were behind having an account (I know it’s free, but hate the principle)
  3. * 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:

GIF of the POC

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:

Screenshot of the Reqwest UI application

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

🛠 Technologies

Languages

Frameworks