Vgmi

Vgmi est un navigateur pour le protocole Gemini ayant des raccourcis clavier similaire à Vim, écrit en C et sous licence ISC.

Le protocol Gemini

Gemini est un nouveau protocole de communication internet introduit en 2019. La fonctionnalité principale d'un navigateur gemini est d'envoyer des requêtes à des serveurs gemini pour ensuite afficher la réponse du serveur, le format de donné principal du protocole est le gemtext. Les serveurs gemini utilisent habituellement le port TCP 1965. Le protocole Gemini requières toutes communications à utilisé TLS(un protocole cryptographique) enfin d'encrypter la communication.

Controles inspirés par Vim

Un des objectifs de Vgmi est de permettre la navigation de l'espace Gemini en utilisant les mêmes contrôles que Vim. Par exemple, la touche 'j' défile la page vers le bas, la touche 'k' défile la page vers le haut, pressé la touche 'g' suivit par 't' ouvre l'onglet suivant. Ces commandes peuvent être répéter en les précédant d'un nombre, taper '10j' fera défiler la page de 10 lignes vers le bas. Ci-dessous est une démonstration de Vgmi affichant les touches pressés.

demo

Images dans le terminal

Vgmi peut afficher des images dans le terminal en utilisant le caractère Unicode '▄'. Ce caractère est utilisé enfin d'émuler une colonne de deux pixels en utilisant la couleur du caractère et la couleur de fond. Il est donc possible d'émuler un écran en couvrant le terminal de ce caractère en utilisant différentes couleurs. La couleur pour un "pixel" est déterminé en calculant la moyenne des couleurs de l'image original couvert par ce pixel et ensuite trouvé la couleur la plus proche de la moyenne parmi les 256 couleurs disponibles. L'image ci-dessous démontre Vgmi affichant le fond d'écran de Windows XP "Bliss" dans un terminal de 80 caractère de largeur et 24 caractère de hauteur.

vgmi_image

Sandboxing

Enfin de réduire les dommages causés par une vulnerabilité dans le navigateur, Vgmi utilise des fonctionnalités de "bac à sable"(sandboxing) sur certains systèmes d'exploitation. Le sandboxing est le concept de réduire les capacités d'un programme. Quand le mode sandbox est en fonction, Vgmi cesse d'avoir accès à l'entièreté du disque, laissant seulement l'accès aux fichiers nécessaires au bon fonctionnement du programme. De plus, le mode sandbox réduit le nombre de "system call" dont Vgmi est permis d'utiliser.

Vgmi supporte présentement le mode sandbox sur 4 systèmes d'exploitation :

Plateformes supportées

Exécutables disponibles (x86-64)

Version 2.0

Version 1.5

Version 1.4

Version 1.3

Version 1.2

Version 1.1

Version 1.0

Version 0.9

Version 0.8

Vgmi peut être compilé sous Windows en utilisant l'environement cygwin.

Le code source est disponible sur github.

Le répertoire peut aussi être cloner en utilisant cette commande :

git clone https://github.com/RealMelkor/Vgmi.git