C’est frustrant d’être toujours uniquement coté serveur.
Si j’avais plus de temps j’aurais beaucoup aimé développer un client Ğ1 complet en Rust, mais je ne pourrais pas, car j’ai déjà beaucoup trop de travail coté Duniter
Alors dans l’espoir que quelqu’un développera un jour un client en Rust, j’ai pris une petite heure pour développer ce prototype :
J’espère que ce prototype en inspirera certains, en tout cas je suis dispo pour en expliquer le code à qui veut
J’ai utilisé la crate graphql_client qui permet de vérifier à la compilation la validité de chaque requête graphql, et de générer automatiquement le typage des variables et de la réponse !!
Les requêtes sont écrites directement en language graphql dans le fichier gva_queries.gql.
Les options cli permettent déjà de choisir son serveur GVA, et de demander le DU courant et le solde d’un compte :
rust-gva-client 0.1.0
Client use GVA API of Duniter.
USAGE:
gva-rust-client [OPTIONS] <SUBCOMMAND>
FLAGS:
-h, --help Prints help information
-V, --version Prints version information
OPTIONS:
-s, --server <server> GVA server url [default: https://g1.librelois.fr/gva]
SUBCOMMANDS:
balance Get account balance
current-ud Get current UD value
help Prints this message or the help of the given subcommand(s)
Ça m’a permis également de mesurer le temps que met mon serveur GVA pour répondre :
$ cargo run current-ud
Finished dev [unoptimized + debuginfo] target(s) in 0.08s
Running `target/debug/gva-rust-client current-ud`
The server responded in 225 ms.
The current UD value is 10.23 Ğ1 !
C’était rafraîchissant en tout cas, ça fait du bien de coder un truc simple pour une fois