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.