IPC avec imsg? Compatibilité OpenBSD et Linux?

Je lisais la source Tmux pour voir comment cela fonctionnait. Il a vu qu’il utilise imsg pour son IPC, dont je n’avais même jamais entendu parler. J’ai essayé d’en savoir plus, mais il s’avère que imsg est un peu difficile à faire sur Google, et j’obtiens beaucoup de résultats pour iMessage.

J’ai trouvé de la documentation imsg ici, il semble donc y avoir une bibliothèque OpenBSD. J’ai commencé à chercher une implémentation Linux, mais je ne trouve rien. Il semble que les auteurs de Tmux ont écrit leur propre couche de compatibilité. Ce genre de surprise me surprend, car imsg semble être vraiment utile. Est-ce que Linux a une API C similaire pour cela, que je ne connais pas?

Un aperçu du script de compilation montre les trois fichiers suivants:

  • compat / imsg-buffer.c
  • compat / imsg.c
  • compat / imsg.h

Les auteurs tmux envoient donc une copie de la bibliothèque imsg d’OpenBSD, qui est entièrement implémentée dans l’espace utilisateur.