Blog - Sébastien Mouchet

Le protocole Gemini – un modèle de simplicité

Publié le 15 janvier 2023 par Sébastien

———

Si vous lisez ce blog sur le Web, vous avez sûrement remarqué son apparence minimaliste.

C'est volontaire.

La version Web a été convertie directement depuis la version Gemini, que vous pouvez lire à l'adresse suivante :

Vous aurez besoin d'un logiciel spécifique pour ouvrir ce lien. Plus précisément, un client Gemini (« navigateur » si vous préférez). J'y reviendrai.

1. Qu'est-ce que Gemini ?

Le projet Gemini est avant tout un protocole, avec un format de fichier associé.

Il a été initié en 2019 par un développeur connu sous le pseudonyme de Solderpunk.

Voici le site officiel du projet (en anglais) :

1.1. Le protocole

En bref, Gemini est un protocole de niveau application, qui s'appuie sur le protocole TCP. De ce point de vue là, il se rapproche d'HTTP.

Comme vu ci-dessus, les liens Gemini commencent par le préfixe suivant :

gemini://

1.2. Le format de fichier

La spécification Gemini définit le format de fichier « text/gemini », qui est un format simple, basé sur du texte.

Il s'inspire de la syntaxe Markdown, même s'il est volontairement plus simple.

Voici un exemple de document « text/gemini » brut :

# Titre de niveau 1

Ceci est une ligne de texte normale.

## Titre de niveau 2

* Ceci est un élément de liste
* Autre élément de liste
* Encore un autre

### Titre de niveau 3

=> https://example.com/ Lien d'exemple
=> gemini://example.com/ Seul un lien par ligne est autorisé

> Ceci est une citation

​```
Bloc préformaté.
Affiché avec une police monospace, et conserve les espaces.
    -> Comme pour cette ligne indentée.
Utile pour le code source, l'art ASCII, …
​```

Malgré sa faible longueur, le document ci-dessus montre en fait toutes les options de formatage disponibles dans le format "text/gemini".

Les fichiers Gemini peuvent utiliser les extensions « .gemini » ou « .gmi ».

2. Avantages

Les deux avantages principaux de Gemini sont :

2.1. La simplicité

Le Web moderne est devenu si complexe que développer un moteur de navigateur à partir de zéro est désormais quasiment impossible.

Globalement, il reste 3 moteurs principaux :

En 2022, ces trois moteurs de navigateurs étaient constitués d'environ 25 millions de lignes de code chacun.

OK, et Gemini ?

Gemini, de son côté, spécifie un format de fichier extrêmement simple – comme aperçu dans l'exemple de la section 1.2. – ce qui permet à n'importe quel développeur de le « parser » (analyser via du code) en quelques heures (et je suis généreux).

Le protocole est tout aussi simple, ce qui fait qu'il est possible d'écrire un client Gemini basique en quelques centaines de lignes de code.

En pratique, les clients Gemini font généralement entre quelques milliers et ~100 000 lignes de code.

2.2. L'accent sur la vie privée

Le Web est un enfer en termes de vie privée, où tout peut être utilisé – et est utilisé – pour vous pister :

Même l'ETag HTTP – un mécanisme de cache – et les favicons ont été détournées pour pister des utilisateurs.

Gemini, en revanche, a été conçu dès le départ pour protéger la vie privée des utilisateurs.

Il y parvient en imposant des limites strictes en termes de fonctionnalités, et en étant volontairement non extensible.

3. Limitations

Le projet Gemini est défini autant par ses fonctionnalités que par ses limitations, qui sont tout à fait intentionnelles.

En particulier, le protocole ne supporte pas :

Les 3 premiers points rendent le protocole plus simple, et le 4ème élément contribue vraiment à empêcher le pistage des utilisateurs.

Concernant le format de fichier :

Là encore, ces restrictions simplifient le traitement des fichiers (« parsing »), mais elles aident aussi à protéger la vie privée des utilisateurs.

Au début, je trouvais que l'absence de gras était dommage, mais j'avoue que j'ai vraiment apprécié le fait de pouvoir déterminer comment traiter une ligne en regardant seulement les 3 premiers caractères, lorsque j'ai écrit mon propre outil de conversion Gemini vers HTML.

4. Usages recommandés

L'objectif de Gemini n'est pas de remplacer le Web, mais de co-exister avec.

On considère qu'il fait partie du mouvement « Small Internet », parfois écrit « Smol Net ». Voir aussi le concept similaire de « Slow Web ».

Les sites dont le contenu est principalement du texte sont les plus adaptés pour Gemini.

Les blogs, en particulier, sont un usage populaire de Gemini.

Par exemple, le blogueur de longue date Lionel Dricot, alias Ploum, a transformé tout son blog en "gemlog" fin 2022 :

Vous y trouverez des articles en français et en anglais.

Les sites à visée informative conviennent également bien à Gemini.
Sans surprise, vous pouvez trouver pas mal d'informations à propos du projet Gemini lui-même :

5. Clients (navigateurs) suggérés

J'aurais tendance à recommander Lagrange à la plupart des gens, pour naviguer sur le « Geminispace » :

Son interface graphique offre un bon rendu, et il est disponible pour Windows, macOS et Linux.
En ce début 2023, il y a aussi une version beta pour Android et iOS.

Capture d'écran de Lagrange 1.14.1 sous Windows 11
Capture d'écran de Lagrange 1.14.1 sous Windows 11

Pour les plus geeks d'entre vous, Amfora semble être le client en ligne de commande le plus populaire :

Il y a beaucoup d'autres logiciels, comme vous pouvez le voir dans la liste suivante (en anglais) :