Sujet : Re: [HS] simulateur d'APIs
De : basile (at) *nospam* starynkevitch.net (Basile STARYNKEVITCH)
Groupes : linux.debian.user.frenchDate : 08. Jun 2026, 10:20:01
Autres entêtes
Organisation : linux.* mail to news gateway
Message-ID : <N3Ejf-beh3-5@gated-at.bofh.it>
References : 1
User-Agent : Evolution 3.56.2-9
On Mon, 2026-06-08 at 10:14 +0200, Jean-Marc wrote:
salut la liste,
Connaissez-vous un logiciel/outil en paquet Debian qui permette la
simulation d'API's ?
Il faudrait d'abord définir ce qu'est une API.
Une bibliothèque partagée (shared library) sous Debian fournit une API
(application programmable interface), c'est à dire un ensemble de
fonctions compilées (depuis du code en C, C++, Rust, ...).
Cette bibliothèque partagée est un fichier (au format ELF, voir
https://man7.org/linux/man-pages/man5/elf.5.html ...).
Elle peut être chargée à l'exécution par la fonction dlopen(3). Voir
https://man7.org/linux/man-pages/man3/dlopen.3.htmlAprès son chargement, on peut y retrouver l'adresse d'une fonction
compilée par la fonction dlsym(3). Voir
https://man7.org/linux/man-pages/man3/dlsym.3.htmlEn C++ il faut prendre des précautions supplémentaires documentées dans
https://www.ibiblio.org/pub/Linux/docs/HOWTO/other-formats/pdf/C++-dlopen.pdfPragmatiquement, un processus Linux peut charger ainsi des centaines de
milliers de bibliothèques partagées distinctes (ou greffons, en anglais
plugins), comme le montre expérimentalement
https://github.com/bstarynk/misc-basile/blob/master/manydl.cUne autre façon de générer puis charger du code dynamiquement à la
volée peut passer par des bibliothèques libres, dont
https://www.gnu.org/software/lightning/et
https://gcc.gnu.org/onlinedocs/jit/et
https://asmjit.com/Des programmes libres comme les compilateurs SBCL.org ou ocaml.org
peuvent aussi générer du code machine dynamiquement ou à la volée.
La génération de code C ou C++ temporaire (et compilé en des greffons
chargés à la volée) est aussi possible et compatible, sur nos
processeurs rapides, avec une interactivité, comme le montre par
exemple Bigloo.
https://github.com/manuel-serrano/biglooIl peut être utile d'utiliser dans un tel cas un ramasse-miettes
conservatif (comme
https://fr.wikipedia.org/wiki/Boehm_garbage_collector utilisé dans
inkscape.org ....) ou précis comme
https://github.com/bstarynk/qish-gc/Un autre sens d'API existe, celui des serveurs Web ou de FastCGI.
Dans tous les cas on peut réaliser des simulateurs d'API à un coût de
dévelopement raisonnable. La première difficulté est bien évidemment de
définir ce qu'on appelle "Application Binary Interface" et ensuite de
préciser et documenter l'interface qu'on souhaite.
Le compilateur GCC (voir gcc.gnu.org et
https://gcc.gnu.org/onlinedocs/gccint/Plugins.html ...) comme l'éditeur
GNU emacs (voir
https://www.gnu.org/software/emacs/ ...) fournissent
des exemples d'API et documentent celles-ci (les deux exigent de
charger une bibliothèque partagée en logiciel libre).
Librement
-- Basile STARYNKEVITCH <basile@starynkevitch.net>8 rue de la Faïencerie http://starynkevitch.net/Basile/ 92340 Bourg-la-Reine
https://github.com/bstarynkFrance
https://github.com/RefPerSys/RefPerSys https://orcid.org/0000-0003-0908-5250
Haut de la page
Les messages affichés proviennent d'usenet.
NewsPortal