Qu’est-ce que Janas ?
Janas, de Maurizio Cammalleri, est un ensemble d'outils d'IA écrits en C, sans autre dépendance que la bibliothèque C. Sa pièce principale, Janas-LLM, exécute des modèles de langage à mélange d'experts dont les fichiers dépassent la mémoire de la machine. Les poids restent sur le disque ; les experts dont chaque token a besoin sont lus sur un SSD NVMe, et ceux qui reviennent sans cesse sont gardés dans un cache d'experts qui occupe la RAM libre.
Il lit son propre format, .jns, converti depuis des fichiers GGUF (Q4_K_M et plusieurs autres types de 3 à 5 bits) ou téléchargé déjà converti depuis le compte Hugging Face du projet. Les familles prises en charge sont Qwen3, Qwen3.5, Qwen3.6, Qwen3-Next, Gemma 4 et Llama 3. Autour du moteur se trouvent un chat en terminal, janas-server (une API HTTP dans le style d'OpenAI), janas-mcp (le modèle sous forme d'outils pour clients MCP) et une bibliothèque C.
Le dépôt a été créé le 20 septembre 2026, compte environ 548 étoiles GitHub et 44 forks, et il est sous licence GPL-3.0 ou ultérieure. Il publie des versions datées pour Linux et Windows en x86-64, la dernière v2026.10.30.1 le 30 octobre. Le README le présente comme une expérience, pas un produit.
Janas vaut-il le coup ?
Janas est une tentative sérieuse et remarquablement documentée d'exécuter des modèles à mélange d'experts qui ne tiennent pas en mémoire, et ses chiffres phares restent à lire comme des données de l'auteur. Son tableau, mesuré sur un seul portable (Intel Core Ultra 9 185H, 32 GB de RAM, un disque NVMe lisant à environ 5,7 GB/s), montre Qwen3-Next-80B, un fichier de 48,4 GB, écrivant à 26,4 tok/s contre 3,0 pour llama.cpp et lisant un prompt à 68,4 contre 17,7. La description d'une ligne du dépôt cite encore des chiffres plus anciens, 37 tok/s et 2,8 pour llama.cpp sur 13 modèles ; le README compte désormais 17 lignes. Les 37 viennent des brouillons, le bloc de prédiction propre au modèle qui devine des tokens d'avance que le modèle vérifie ensuite ; dans le chat, le README donne 31-35 tok/s avec un cache chaud.
L'astuce ne vaut que pour les mélanges d'experts. Qwen3-Next active environ 3B de ses 80B paramètres par token, donc Janas garde les experts les plus utilisés dans un cache (21 GiB sur le 80B) et lit le reste sur le SSD avec O_DIRECT, en préchargeant les experts probables de la couche suivante pendant que la couche en cours calcule. Quand le cache contient moins d'un cinquième des experts, les experts légers absents de la mémoire sont purement ignorés, ce qui échange un peu de précision contre de la vitesse : l'accord avec le token le plus probable de llama.cpp est passé de 393 à 384 sur 400 dans un essai de l'auteur. La référence llama.cpp a aussi demandé des contournements pour fonctionner tout court, car sa compilation habituelle manquait de mémoire sur ce portable ; une partie de l'écart mesure donc l'appétit de mémoire de llama.cpp plutôt que la vitesse brute.
Les preuves indépendantes existent, mais elles sont partielles. Des testeurs ont fait tourner le 80B sur des machines d'environ 31 GiB de RAM à 9,5 à 16,2 tok/s sans brouillons, ce qui confirme que cela fonctionne. Personne n'a reproduit la comparaison 26,4 contre 3,0. Le meilleur face-à-face externe, sur un i9-14900HX avec 62,5 GiB, a trouvé llama.cpp plus rapide sur Qwen3-30B (38,9 contre 28,3 tok/s), les deux à égalité sur le 80B, qui tenait en RAM sur cette machine, et Janas devant sur le Qwen3-235B de 142 GB (3,0 contre 1,59). Sur un Ryzen 5 5500 sans AVX-VNNI, llama.cpp lisait les prompts plus de deux fois plus vite.
Les coûts se voient en latence et en stabilité. La première réponse d'une session tourne à 16-20 tok/s tant que les experts arrivent encore du disque, un prompt de 32 000 tokens a mis 15 minutes à être lu, et le README prévient que le moteur peut pousser un bureau dans le swap et a déjà provoqué une fois une réinitialisation du pilote GPU. Le GPU passe uniquement par Vulkan, et des issues ouvertes signalent une sortie incohérente sur une Intel Arc B580 et 3 320 tests de produits GPU sur 3 980 en échec sur une AMD Radeon. Le streaming lui-même ne fait que lire : d'après le README, le moteur n'écrit que dans ~/.cache/janas, donc l'usure du SSD n'est pas le souci ; la bande passante et la chaleur du disque le sont, et le projet ne publie aucun chiffre d'endurance.
Le plus grand risque tient à la gouvernance. Les 90 commits sont tous de l'auteur, et CONTRIBUTING.md indique qu'aucun code extérieur ne sera fusionné tant qu'une fondation à but non lucratif détenant le droit d'auteur n'existe pas ; les pull requests pour ARM64, macOS et AVX-512 restent donc ouvertes. Face à llama.cpp, avec ses quelque 132 000 étoiles et tous les backends matériels, Janas est un outil étroit qui gagne dans un seul cas : un modèle à mélange d'experts trop gros pour votre RAM, sur x86-64.
Là où il fait la différence
Une développeuse avec un portable Linux ou Windows de 32 GB et un disque NVMe
Faire tourner Qwen3-Next-80B ou Qwen3-Coder-Next en local au lieu d'un modèle de 30B
Téléchargez la version, lancez janas-get pour récupérer le fichier déjà converti de 48,4 GB, puis janas-chat. Des testeurs sur des machines d'environ 31 GiB rapportent 9,5 à 16,2 tok/s sans brouillons ; attendez-vous à des premières réponses plus lentes pendant que le cache d'experts se remplit, et fermez le navigateur, car les autres programmes prennent la mémoire dont le cache a besoin.
Un chercheur disposant d'une station de travail de 64 GB
Essayer un modèle Qwen3-235B de 142 GB sans acheter plus de RAM
Convertissez le GGUF Q4_K_M avec gguf2jns et laissez le cache d'experts prendre la mémoire libre. Un testeur a mesuré 3,0 tok/s en écriture, environ le double du résultat de llama.cpp en mmap sur la même machine : utilisable pour des questions par lots, trop lent pour un chat interactif.
Une responsable technique dans une petite entreprise qui l'envisage pour un assistant interne
Décider si l'on peut s'appuyer sur un endpoint local compatible OpenAI basé sur Janas
janas-server traite une requête à la fois sur 127.0.0.1:8080 avec une API key facultative, il convient donc à un utilisateur, pas à une équipe. La GPL-3.0 autorise librement l'usage interne via HTTP, mais lier libjanas_llm à un logiciel que vous distribuez fait de ce logiciel un logiciel GPL ; avec un seul mainteneur et des interfaces qui changent chaque semaine, prévoyez de retester à chaque mise à jour.
Avant de vous engager
- Mise en route
- Archive compilée pour Linux x86-64 (Ubuntu 22.04, Debian 12 et ultérieures) ou un zip pour Windows 10 et 11 ; janas-get liste les modèles, les télécharge et les vérifie. Compiler depuis les sources ne demande que GCC, plus les en-têtes Vulkan et glslang 15.2 ou ultérieur pour le GPU. Le délai jusqu'à la première réponse tient surtout au téléchargement du modèle.
- Intégrations
- janas-server suit l'API d'OpenAI (chat, completions, Responses, embeddings, batches) avec une page de test ; janas-mcp propose le modèle à Claude Code et aux autres clients MCP ; une bibliothèque C avec des bindings FreeBASIC et Node.js. GPU via Vulkan 1.3 uniquement ; le NPU d'Intel seulement sous Linux sur Meteor Lake.
- Données et confidentialité
- Fonctionne en local et n'écrit que dans ~/.cache/janas et là où vous placez les modèles convertis ; aucune télémétrie n'est décrite. Le serveur écoute par défaut sur 127.0.0.1 sans API key. GPL-3.0 ou ultérieure pour le code ; les modèles convertis gardent leurs propres licences (Apache 2.0 pour Qwen, la Qwen Community License pour Qwen3.8-Flash-Next, la CC BY-NC-SA non commerciale pour DeepNSM).
- Coût à grande échelle
- Pas d'édition payante, le coût est donc le matériel : la machine de référence est un portable de 32 GB avec un SSD NVMe lisant à environ 5,7 GB/s, et des disques plus lents ou une machine occupée réduisent la vitesse. Comme le serveur ne tient qu'une séquence, servir beaucoup d'utilisateurs suppose une machine par utilisateur simultané.
- Limites
- Développé et mesuré sur un seul portable ; environ 21 issues et pull requests ouvertes, dont des sorties GPU erronées sur Intel Arc B580 et AMD Radeon Vega et des prompts lents sous Windows avec NVIDIA. Pas de backend CUDA, Metal ou ROCm, pas de version macOS ou ARM, types GGUF IQ2 et IQ1 non pris en charge, et un prompt de 32 000 tokens a pris 15 minutes sur le portable de référence.
Les points forts
- Exécute des modèles à mélange d'experts de 48 GB sur des machines de 32 GB, confirmé par des testeurs externes
- C pur sans dépendances ; versions compilées pour Linux et Windows
- Mesure lui-même la répartition entre threads, GPU et NPU sur chaque machine
- Serveur façon OpenAI, serveur MCP et bibliothèque C inclus
Les points faibles
- Les gros écarts avec llama.cpp sont autodéclarés, sur un seul portable
- Un seul mainteneur ; le code extérieur ne peut pas encore être fusionné
- Vulkan uniquement, avec des sorties erronées sur plusieurs GPU
- Ni macOS ni ARM ; expérimental, avec des commandes qui changent chaque semaine
Idéal pour
Les utilisateurs x86-64 qui veulent un modèle à mélange d'experts plus gros que leur RAM, comme Qwen3-Next-80B sur un portable de 32 GB, et acceptent un logiciel expérimental.
Alternatives à Janas
Janas : questions fréquentes
- Janas vaut-il le coup ?
- Il fait vraiment tourner un modèle de 80B sur un portable de 32 GB, mais les gros écarts avec llama.cpp sont mesurés par l'auteur lui-même et l'ensemble reste l'expérience d'une seule personne. Nous lui donnons 3.6 sur 5.
- Combien coûte Janas ?
- Gratuit et open source sous GPL-3.0 ou ultérieure. Pas d'édition payante.
- Quels sont les inconvénients de Janas ?
- Les gros écarts avec llama.cpp sont autodéclarés, sur un seul portable; un seul mainteneur ; le code extérieur ne peut pas encore être fusionné; vulkan uniquement, avec des sorties erronées sur plusieurs GPU; ni macOS ni ARM ; expérimental, avec des commandes qui changent chaque semaine.
- À qui s’adresse Janas ?
- Les utilisateurs x86-64 qui veulent un modèle à mélange d'experts plus gros que leur RAM, comme Qwen3-Next-80B sur un portable de 32 GB, et acceptent un logiciel expérimental.
- Combien coûte Janas pour une équipe ou en production ?
- Pas d'édition payante, le coût est donc le matériel : la machine de référence est un portable de 32 GB avec un SSD NVMe lisant à environ 5,7 GB/s, et des disques plus lents ou une machine occupée réduisent la vitesse. Comme le serveur ne tient qu'une séquence, servir beaucoup d'utilisateurs suppose une machine par utilisateur simultané.
- Janas est-il sûr pour les données de l’entreprise ?
- Fonctionne en local et n'écrit que dans ~/.cache/janas et là où vous placez les modèles convertis ; aucune télémétrie n'est décrite. Le serveur écoute par défaut sur 127.0.0.1 sans API key. GPL-3.0 ou ultérieure pour le code ; les modèles convertis gardent leurs propres licences (Apache 2.0 pour Qwen, la Qwen Community License pour Qwen3.8-Flash-Next, la CC BY-NC-SA non commerciale pour DeepNSM).
- Quelles sont les meilleures alternatives à Janas ?
- Les alternatives les plus proches que nous avons testées sont llama.cpp, Ollama et llamafile.
Réponses vérifiées le 31 oct. 2026.