Travaillé du 2023-10-14 au 2024-01-20
🏷 Mots clés
🚦 Status
En pauseEn 2023, je n’étais pas satisfait de Postman et j’ai décidé d’essayer de créer un client HTTP simple en Rust et React. Mes frustrations principales avec Postman étaient les suivantes :
- * Il envoie des requêtes à leurs serveurs
- * De nombreuses fonctionnalités sont liées à l’ouverture d’un compte (je sais que c’est gratuit, mais je déteste le principe)
- * Il était parfois lent
Au final, j’utilise toujours Postman car je n’ai pas passé beaucoup de temps sur ce projet, mais c’était quelque chose d’intéressant à construire avec Tauri et Reqwest .
Petit POC
Initialement, j’avais créé une petite preuve de concept en utilisant uniquement Rust avec Tauri et Leptos pour le frontend. C’était une expérience amusante, mais je voulais quelque chose opérationnel rapidement, donc puisque je connaissais mieux React que Leptos, j’ai décidé d’opter pour cette solution. Mais vous trouverez un GIF du POC ci-dessous :
Nouvelle IU
J’ai passé un peu plus de temps sur celle-ci, en utilisant Tailwind.css pour le style et React pour le frontend. J’ai également utilisé Tanstack Query pour une intégration très agréable avec Tauri. Voici une capture d’écran de l’IU :
Capacités
Les fonctionnalités sont limitées, mais l’application dispose des éléments nécessaires, tels que :
- * une barre d’URL dynamique (où les paramètres ajoutés sont automatiquement remplis dans le tableau)
- * toutes les méthodes HTTP
- * définition des en-têtes de la requête
- * définition du corps de la requête
- * affichage des en-têtes de la réponse
- * visualisation du corps de la réponse
Performance
J’ai obtenu des réponses étonnamment plus lentes en comparaison avec Postman, mais le délai de démarrage est beaucoup plus court. Je pense que la différence est due au fait qu’il n’y a pas de pool de clients adéquat et qu’ils sont réutilisés (bien que j’aie essayé d’implémenter quelque chose de ce genre).
Sur mon Mac, l’exécutable ne fait que 11 Mo et occupe environ 75 Mo de mémoire (ce qui est un peu moins que les 400 Mo de Postman sur ma machine et les 500 Mo de mémoire qu’il occupe).
J’accepterais avec plaisir cette réduction de 97% de la taille et de 85% de l’utilisation de la mémoire pour une légère baisse de performance.
Avenir
Je n’ai pas l’intention de continuer à travailler sur ce projet, mais cela pourrait changer dans le futur. Je ne suis pas sûr de l’utiliser un jour, mais c’était un projet amusant à concevoir.
🗞 Code source
- Disponible sur
- * GitHub (BenJeau/reqwest_ui)
🛠 Technologies
Langues
* TypeScript - 🔍
Autres
* Tanstack Query - 🔍