Bibliothèque client JS/TS?

Super ça !
Oui je suis preneur d’un lib en JS. Et promis je l’intégrerai ensuite a gchange :slight_smile:

3 Likes

Une lib JS qui produierai la barre de financement

Ben les gars alors ? Vous n’avez pas encore codé la bibliothèque BMA/GVA full javascript DuniterJS ?

Ça se serait un putain de beau projet à mener et à financer ! :star_struck:

2 Likes

Oui, j’ai manqué de temps pour le faire. Mais globalement tout le code est déjà dans Cesium (écrit en JS, mais avec angularJS, qui est quand même intrusif sur ce coût la).
Je crois que @elois a aussi généré du code JS depuis Rust, avec tout ce qu’il faut au niveau Crypto. @elois tu confirmes ? Est-ce a jour ?

3 Likes

C’est quoi une bibliothèque intrusive ?

Et sinon gannonce ça fait pas ça aussi ? N’aurait-on pas moyen d’en récupérer quelques ingrédients de base pour faire notre tambouille ?

Ben il y les appels de lib angularJS a exclure du code, c’est tout. Et puis passer le code en TS tant qu’on y est.

2 Likes

Oui je confirme mais ce n’est pas du Js c’est du webassembly, appelable directement par du Js :slight_smile:

La lib webassembly est la :

Et un exemple de projets en javascript qui l’utilise :

La lib webassembly est directement compilée depuis une partie du code de dunitrust :slight_smile:

Tout ça n’est plus a jours mais fonctionne toujours nickel, et je compte bien y remettre a jours tôt ou tard (ce qui sera nécessaire quand on voudra ajouter des fonctionnalités a la lib wasm).

1 Like

Dit comme ça, on a l’impression que l’on peut le faire en 2 coups de souris :checkered_flag:

Ma curiosité m’a amené à lire la doc/fr, super tout le tuto ! C’est une bonne idée ça :clap:
Bon je suis quand même un peu perdu avec angular… Entre l’api, les services, les contrôleurs, les $scope partout… En tout cas il y a plein de choses intéressantes dans services !

Ce qui serait bien, c’est d’utiliser l’api fetch() html en front et node-fetch ou isomorphic-fetch sur serveur. C’est compatible, du coup on aurait le même service en back et en front, isomorphique !

On pourrait extraire et remplacer les gets et posts à partir de l’export du service bma ici.
Et sortir des trucs d’autres services comme obtenir le DU sur currency-services ou aussi des trucs de crypto, wallet, wot…

En fait, il faudrait définir le scope d’une telle librairie…
Perso, j’imagine une lib pouvant être intégré dans n’importe quel framework ; angular, react, vue, node.js… mais étant compatible front, elle pourrait servir sur wordpress, prestashop et n’importe quel framework web… on met la lib sur un CDN et zouu…
Dans un premier temps, faudrait qu’elle ait le minimum pour obtenir les dernières écritures d’un portefeuille, obtenir le DU, et traiter les datas pour fournir les données prêtes à être utilisées dans un graphique… Juste ce qu’il faut pour la barre de financement en mode renderless… Comme ça les goûts et les couleurs, c’est chacun qui fait comme il veut sur son site !
Ensuite, on pourrait imaginer ajouter des fonctionnalités de transaction, crypto, recherche d’identité…

Par contre, j’ai pas trouvé pour obtenir des données elastic search ? Mais est-ce utile ?

2 Likes

Si tu veux rentrer plus tranquillement dans le code, j’ai fait une version avec juste le mockup et des données bidons ici : Boris / Cesium-mockup-01-simple · GitLab

Aussi, le tuto AngularJS de Grafikart est très bon.

Ce serait bien que ça reste accessible à l’utilisateur Wordpress de base qui n’est pas un power user et qui a besoin de pouvoir générer un code iframe simplement via le générateur. As-tu en tête de pouvoir permettre ça aussi ?

Y’avait un gars qui était chaud pour faire un plugin Wordpress.

1 Like

J’ai fait plusieurs plugin pour wordpress. Avec une lib js, on peut l’intégrer dans wordpress en front, et en back faire des blocs pour gutemberg. L’utilisateur de base n’aura plus qu’à glisser/déposer une barre de financement pour l’intégrer dans son site…
Enfin tout ça c’est pas pour tout de suite !

3 Likes

Ce serait trop cool !

Bon, je ne pense pas qu’il ait urgence là-dessus ceci dit.

Il est peut-être plus raisonnable de lancer un tel projet basé principalement sur GVA.

1 Like

Bonjour, je découvre avec intérêt l’existence des binding Rust :+1:

Je me demande a quel point les bindings Rust couvrent les besoins des clients et quelle était votre vision là-dessus.

A priori le repo principal est dup-tools-wasm; Si je comprends bien, cela ne couvre « que » les fonctions cryptographiques ? (ce qui est déjà très bien). Quelqu’un sait si c’est « à jour » ?

Est ce qu’il est prévu d’exporter d’autres modules de dubp-rs-libs ?

Est-ce que duniteroxyde est déprécié ? je ne retrouve pas les sources.

Quelqu’un connait le statut de gva-api ?

Bon dimanche :slight_smile:

Cela dépend de chaque client et de ce que souhaite faire ses développeurs.
Aujourd’hui le seul client qui utilise du Rust c’est Ğecko, le code Rust pourrait potentiellement tout gérer en dehors de la vue, pour le moment on se limite aux fonctionnalités cryptographiques, mais on peut aller plus loin si @poka le souhaite :slight_smile:

Concernant les autres clients, aucun ne m’a demandé de binding Rust récemment, et même s’il me le demandait je ne sais pas si je pourrais y consacrer du temps, tout dépend de l’élan que j’ai envers le projet et de qu’est-ce que je priorise.

Mais je ne suis pas le seul à pouvoir coder un binding Rust, @tuxmain à par exemple déjà coder du binding Rust pour Python, donc il serait en capacité technique de le faire si un client Python le demandait, ça ne veut pas dire qu’il aurait forcément le temps ou l’envie.

Concernant les binding Js/Ts il y deux cas bien différents à dissocier selon l’interpréteur javacript :

  1. Le navigateur : il faut passer par webassembly.
  2. NodeJs : permet un binding «classique» en tant que lib dynmique style C/C++, c’est ce que je fais actuellement dans Duniter.

Ça c’est uniquement pour un binding Js-Ts dans un cas d’usage «dans le navigateur». Oui je peux maintenir à jour le repo dup-tools-wasm s’il y a de la demande. Je l’ai maj il y a 3 mois, c’est pas si vieux :slight_smile:

Le code de duniteroxyde a été intégré dans le dépôt de Duniter lui-même, mais c’est du binding pour NodeJs, et c’est pas une lib, c’est un binding fait spécifiquement pour la migration de Duniter en Rust, ça ne peut pas servir pour d’autres projets.

Oui c’est cgeek (le développeur originel de Duniter), qui avait commencé un prototype de GVA il y 2 ans, mais il n’a pas trouvé le temps d’avancer suffisamment dessus et entre-temps il a décidé de se concentrer sur d’autres projets.

Maintenant que j’ai développé un prototype bien avancé de GVA en Rust, je pense que ce dépôt peut être archivé :slight_smile:

1 Like

Ok merci pour les précisions

J’explore actuellement l’écosystème duniter, côté client j’ai encore du mal à voir ce qui est couvert aujourd’hui par le combo GVA + dup-tools-wasm et ce qu’il manquerait pour avoir un client web (statique) qui n’aurait qu’a gérer la « vue », ce qui ouvre la porte à de nombreuses intégrations.

AMHA, le plus de code spécifique sera partagé via wasm/bindings le plus d’expériences seront possibles autour de duniter (car plus accessible), et ça réduit le code, donc les bugs, la maintenance, etc…

Je ne sais pas à quel point une mise à jour de dup-tools-wasm serait utile, mais rien que pour le diff ca m’intéresse :slight_smile: et pour tester aussi.

3 Likes