Aller au contenu

Mentions légales

Sur quoi Runlix est bâti

Chaque composant tiers que Runlix embarque ou traduit, avec sa licence vérifiée à la source. La liste est tenue par un test : une dépendance non attribuée n'atteint pas une version publiée.

Mis à jour 2026-09-12

Runlix n'est pas écrit à partir de rien. Il repose sur MLX d'Apple, sur un ensemble de crates Rust, sur Avalonia et — pour les architectures de modèles — sur du code traduit depuis mlx-lm plutôt que simplement appelé.

Cette page reflète le fichier NOTICE du dépôt, et ce fichier n'est pas tenu à jour par de bonnes intentions : un test fait échouer la compilation si une dépendance directe de l'application, de ses tests ou du moteur n'y figure pas. Une dépendance non attribuée n'atteint pas une version publiée. Chaque licence ci-dessous a été lue dans les métadonnées du paquet lui-même, pas de mémoire.

Code natif — MLX

MLX — MIT, © 2023 Apple Inc. Extrait du wheel PyPI mlx-metal ; libmlx.dylib et mlx.metallib sont redistribués à l'intérieur du paquet.

mlx-c — MIT, © 2023-2024 Apple Inc. L'interface C de MLX, compilée depuis les sources ; libmlxc.dylib est redistribué. Les sources sont conservées octet pour octet sans modification, et nos corrections vivent dans des fichiers de correctifs séparés : une modification faite sur place disparaîtrait à la première mise à jour, et disparaîtrait en silence.

Code traduit — les architectures de modèles

mlx-lm — MIT, © 2023 Apple Inc.

Les architectures du moteur sont portées depuis mlx_lm/models/. Ce n'est pas du code copié : c'est une traduction en Rust idiomatique, et la correspondance tient au niveau des fichiers entiers plutôt que des lignes. mlx-lm sert par ailleurs d'oracle de référence qui décide si la traduction est juste.

Chez nous Vient de Version
phi3 mlx_lm/models/phi3.py mlx-lm 0.31.3
llama mlx_lm/models/llama.py mlx-lm 0.31.3
qwen2, qwen3 mlx_lm/models/qwen2.py mlx-lm 0.31.3
gemma3 mlx_lm/models/gemma3_text.py mlx-lm 0.31.3
deepseek mlx_lm/models/deepseek_v2.py mlx-lm 0.31.3
RoPE mlx_lm/models/rope_utils.py mlx-lm 0.31.3
masques mlx_lm/models/base.py mlx-lm 0.31.3

Une copie gelée des sources dont provient la traduction vit dans le dépôt avec sa version enregistrée, et c'est ainsi que le projet s'aperçoit que l'amont a changé. Rien d'autre ne le fait : aucun compilateur, aucun gestionnaire de paquets ne vous préviendra jamais que du code dérivé a dérivé de son origine.

Les encodeurs pour les embeddings de texte sont traduits de la même manière, depuis mlx-embeddings — MIT, © Prince Canuma — et vérifiés contre lui comme leur propre oracle. Ils ne sont pas encore accessibles depuis l'application.

Crates Rust

tokenizers — Apache-2.0, Hugging Face · minijinja et minijinja-contrib — Apache-2.0, Armin Ronacher · serde_json — MIT ou Apache-2.0.

minijinja-contrib mérite sa place pour une raison précise : les gabarits de conversation sont écrits pour le Jinja2 de Python et appellent des méthodes de chaîne propres à Python. C'est son module pycompat qui les rend affichables tout court.

Le téléchargeur est un processus séparé et porte hf-hub — Apache-2.0, Hugging Face. Séparé parce que hf-hub amène tokio, reqwest et hyper avec lui : 356 crates contre les 84 du moteur. Le moteur que .NET charge dans son propre processus reste à 84.

Les dépendances transitives sont consignées dans le fichier de verrouillage du moteur.

Paquets .NET

Avalonia et ses paquets Desktop, Fluent, police Inter, ReactiveUI, Headless et Skia — MIT. Microsoft.Data.Sqlite — MIT. Tmds.DBus.Protocol — MIT.

LiveMarkdown.Avalonia — Apache-2.0, de DearVa, version 1.12.2 — est recopié dans le dépôt plutôt que référencé, avec le texte complet de sa licence à côté des sources. Il affiche le Markdown des réponses au fil de leur arrivée. Il amène Markdig (BSD-2-Clause) et TextMateSharp avec ses grammaires (MIT, chaque grammaire embarquée portant sa propre licence) pour la coloration syntaxique.

Réservés aux tests : xunit (Apache-2.0), Xunit.SkippableFact (MS-PL), Microsoft.NET.Test.Sdk (MIT) et les paquets headless d'Avalonia, qui dessinent l'interface dans un PNG sans écran et sans autorisations.

Ce site

Servi par ASP.NET Core sur .NET 10, rendu sur le serveur, sans JavaScript envoyé à votre navigateur. Les caractères sont Newsreader, Inter et IBM Plex Mono, tous sous licence SIL Open Font, servis depuis ce domaine et non depuis Google Fonts. C'est pourquoi la politique de sécurité du contenu peut être default-src 'none' avec 'self' : il n'y a aucun hôte externe que ce site contacte, donc aucun tiers à déclarer.

D'où vient Runlix

Runlix est né du code d'OllamaManager, qui est gelé et fonctionne toujours à l'adresse github.com/alexander64/ollamanager. La feuille de route explique ce qui a changé et pourquoi.