Première rédaction de cet article le 29 novembre 2020
Dernière mise à jour le 2 décembre 2020
Comme beaucoup de gens, je trouve que le Web, tout en étant un immense succès, souffre de plusieurs défauts. Tous ne proviennent pas de la technique, mais certains peuvent quand même être reliés à des choix lors de la conception des protocoles et formats. C'est par exemple le cas des problèmes de vie privée, car HTTP et HTML fournissent trop de moyens de pister les utilisateurs, et des problèmes stratégiques autour des navigateurs : aujourd'hui, écrire un navigateur Web complet, disons l'équivalent de Firefox, est une tâche colossale, réservée à de très grosses équipes très pointues. Cela limite la concurrence : seuls trois ou quatre navigateurs vraiment différents existent et encore moins de moteurs de rendu. (Et je n'ai pas encore mentionné le désir de davantage de sobriété numérique et d'empreinte environnementale réduite.) Le projet Gemini s'attaque à ce problème en définissant un nouveau protocole et un nouveau format, délibérement très simples et non extensibles, afin de rendre plus difficile l'apparition des mêmes problèmes que dans le Web.
Gemini est donc très simple. Il utilise :
Un point important et délibéré de Gemini est son absence d'extensibilité. Le but est d'éviter ce qui est arrivé au Web, où un protocole simple et sûr du début a évolué en un gros machin compliqué et dangereux. Ainsi, Gemini n'a pas d'en-têtes de requêtes ou de réponses. Y ajouter un outil de flicage comme les cookies sera donc difficile et c'est exprès.
Si vous êtes intéressé par ce projet, consultez le site Web pour avoir une première idée. Si vous avez des questions (notamment si vous en êtes au stade « ah, les cons, pourquoi ils n'ont pas tout simplement utilisé X et/ou fait comme Y ? »), il est probable que la FAQ très détaillée y répondra. Si vous êtes d'humeur à lire l'actuelle spécification, elle est aussi sur le Web. Mais beaucoup d'autres ressources à propos de Gemini ne sont évidemment pas sur le Web, mais dans le « geminispace ».
Comme ce « geminispace » ne peut pas se
visiter avec un navigateur Web classique, il
va falloir un client Gemini. Il en existe beaucoup. La plupart sont
assez sommaires mais les lectrices et lecteurs de mon blog sont des
gens avertis et qui savent qu'il ne faut pas juger un système de
publication à ses interfaces actuelles. Déjà, je vais commencer par
supposer que vous ne voulez pas installer un Nième logiciel sur
votre machine mais que vous voudriez quand même jeter un coup
d'œil. Ça tombe bien, plusieurs clients Gemini sont disponible sur
un serveur SSH
public. Connectez-vous en SSH à
kiosk@gemini.circumlunar.space
et essayez le
client de votre choix. Personnellement, j'utilise Amfora. Vous
pouvez visiter les liens de la page d'accueil en tapant espace puis
leur numéro. À la place d'un numéro, vous pouvez aussi indiquer un
URL Gemini comme
gemini://gemini.bortzmeyer.org/
. Si vous voulez
tester plus loin, vous pouvez installer Amfora
ou bien un
des autres clients. Sur Arch Linux,
c'est aussi simple que de taper pacman -S
amfora
. Comme vous vous en doutez, il n'y a pas encore
beaucoup de contenu disponible mais ça grossit tous les jours.
Comme dit plus haut, il y a de nombreux autres clients Gemini. Par exemple, les fans d'Emacs vont apprécier Elpher, un client Gopher et Gemini pour Emacs. Voici son apparence :
Et, ici, avec le client graphique Lagrange :
En plus sommaire, et si on aime la ligne de commande, récupérer un fichier avec Gemini est aussi simple que :
% echo -n "gemini://purexo.mom/\r\n" | gnutls-cli -p 1965 purexo.mom
(gnutls-cli
fait partie de GnuTLS.)
Et si vous voulez un serveur, pour distribuer vos idées géniales
au monde entier ? Il existe plusieurs serveurs en logiciel libre, mais pas de page
Web pour les présenter, il faut aller dans le
geminispace en
gemini://gemini.circumlunar.space/software/
. J'ai
choisi de commencer avec Agate. Agate est
écrit en Rust donc on l'installe en général par la
méthode Rust habituelle, cargo install
agate
. Ensuite, il nous faut un
certificat car Gemini impose
TLS (notez qu'il semble que pas mal de
serveurs Gemini n'aient qu'un certificat auto-signé). Demandons à
Let's Encrypt :
# certbot certonly -n --standalone --domain gemini.bortzmeyer.org
Et je copie certificat et clé privée dans un répertoire à moi, pour ne pas exécuter Agate en étant root. (Pour le renouvellement du certificat, dans trois mois, il faudra que je trouve une solution plus pérenne.) Ensuite, je lance le serveur :
% ~/.cargo/bin/agate gemini.bortzmeyer.org:1965 /var/gemini fullchain.pem privkey.pem gemini.bortzmeyer.org
(Pourquoi le port 1965 est-il le port par défaut ? Je vous laisse chercher un peu.)
Mais il reste à ajouter du contenu, dans le répertoire
/var/gemini
qu'on a indiqué au serveur. Ce
contenu est dans un format spécifique à Gemini, qui ressemble à
Markdown, en plus limité. Je vous le dis tout
de suite : il n'y a pas d'images ! Finies, les photos de chats
mignons ! Voici le source de la page d'accueil de mon serveur :
% cat index.gmi # First Gemini test No actual content yet => https://www.afnic.fr/ AFNIC Web site
Vous noterez :
<h1>
de
HTML) s'écrit comme en Markdown.Voilà, je vais essayer de mettre un peu plus de contenu que ce premier exemple mais ne comptez pas sur une publication de mon blog en Gemini : l'absence d'hypertexte nécessiterait de réécrire sérieusement les articles.
Je reviens un peu au choix des serveurs. On a vu qu'il y avait
une liste en
gemini://gemini.circumlunar.space/software/
mais elle n'est pas éditée, c'est juste un vrac tous les serveurs
possibles, alors que certains sont très sommaires, voire déjà
abandonnés. Voici donc une liste personnelle de ceux que j'ai testés, en commençant (oui,
c'est subjectif), par ceux que je trouve les plus « prêts pour la
prod' » (avec des liens Web à chaque fois, pour faciliter la vie de
celles et ceux qui n'ont pas encore de client Gemini) :
Conclusion ? Ne me demandez pas si Gemini sera un succès ou pas, je suis mauvais pour les pronostics. Je dis juste que je suis content de voir que des gens ne se résignent pas à déplorer les problèmes du Web mais qu'ils essaient de les résoudre.
Autres articles en français sur Gemini :
Version PDF de cette page (mais vous pouvez aussi imprimer depuis votre navigateur, il y a une feuille de style prévue pour cela)
Source XML de cette page (cette page est distribuée sous les termes de la licence GFDL)