Rechtliches
Worauf Runlix aufbaut
Jede fremde Komponente, die Runlix ausliefert oder übersetzt, mit der an der Quelle geprüften Lizenz. Die Liste hält ein Test aufrecht: eine ungenannte Abhängigkeit kommt nicht in eine Veröffentlichung.
Aktualisiert 2026-09-12
Runlix ist nicht aus dem Nichts geschrieben. Es steht auf Apples MLX, auf einer Reihe von
Rust-Crates, auf Avalonia und — bei den Modellarchitekturen — auf Code, der aus mlx-lm
übersetzt und nicht bloß aufgerufen wurde.
Diese Seite spiegelt die Datei NOTICE im Repository, und diese Datei wird nicht von guten
Vorsätzen gepflegt: Ein Test lässt den Build scheitern, wenn eine direkte Abhängigkeit der
Anwendung, ihrer Tests oder der Engine darin fehlt. Eine ungenannte Abhängigkeit kommt nicht in
eine Veröffentlichung. Jede Lizenz unten wurde aus den Metadaten des jeweiligen Pakets gelesen,
nicht aus dem Gedächtnis.
Nativer Code — MLX
MLX — MIT, © 2023 Apple Inc. Aus dem PyPI-Wheel mlx-metal entnommen; libmlx.dylib und
mlx.metallib werden im Paket mitgeliefert.
mlx-c — MIT, © 2023-2024 Apple Inc. Die C-Schnittstelle von MLX, aus den Quellen übersetzt;
libmlxc.dylib wird mitgeliefert. Die Quellen liegen Byte für Byte unverändert im
Repository, und unsere Korrekturen leben als getrennte Patch-Dateien — eine an Ort und Stelle
vorgenommene Änderung würde beim ersten Update verschwinden, und zwar lautlos.
Übersetzter Code — die Modellarchitekturen
mlx-lm — MIT, © 2023 Apple Inc.
Die Architekturen in der Engine sind aus mlx_lm/models/ portiert. Das ist kein kopierter
Code: Es ist eine Übersetzung in idiomatisches Rust, und die Entsprechung gilt auf der Ebene
ganzer Dateien, nicht einzelner Zeilen. mlx-lm dient zugleich als Referenzorakel, das
entscheidet, ob die Übersetzung stimmt.
| Bei uns | Kommt aus | 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 |
| Masken | mlx_lm/models/base.py |
mlx-lm 0.31.3 |
Eine eingefrorene Kopie der übersetzten Quellen liegt mit festgehaltener Version im Repository, und genau daran merkt das Projekt, wenn sich das Original ändert. Sonst merkt es nichts: Kein Compiler und kein Paketmanager wird jemals warnen, dass abgeleiteter Code von seinem Ursprung abgedriftet ist.
Die Encoder für Text-Embeddings sind auf dieselbe Weise übersetzt, aus mlx-embeddings — MIT, © Prince Canuma — und gegen dieses Original als eigenes Orakel geprüft. Aus der Anwendung heraus sind sie noch nicht erreichbar.
Rust-Crates
tokenizers — Apache-2.0, Hugging Face · minijinja und minijinja-contrib — Apache-2.0, Armin Ronacher · serde_json — MIT oder Apache-2.0.
minijinja-contrib verdient seinen Platz aus einem bestimmten Grund: Chat-Vorlagen sind für
Jinja2 aus der Python-Welt geschrieben und rufen Python-Methoden auf Zeichenketten auf. Sein
Modul pycompat ist das, was sie überhaupt darstellbar macht.
Der Downloader ist ein eigener Prozess und trägt hf-hub — Apache-2.0, Hugging Face.
Eigener Prozess, weil hf-hub tokio, reqwest und hyper mitbringt: 356 Crates gegenüber den 84
der Engine. Die Engine, die .NET im selben Prozess lädt, bleibt bei 84.
Transitive Abhängigkeiten stehen in der Lock-Datei der Engine.
.NET-Pakete
Avalonia samt der Pakete Desktop, Fluent, Inter-Schrift, ReactiveUI, Headless und Skia — MIT. Microsoft.Data.Sqlite — MIT. Tmds.DBus.Protocol — MIT.
LiveMarkdown.Avalonia — Apache-2.0, von DearVa, Version 1.12.2 — ist einkopiert statt referenziert, mit vollständigem Lizenztext neben den Quellen. Es stellt das Markdown der strömenden Antworten dar, während sie entstehen. Es bringt Markdig (BSD-2-Clause) und TextMateSharp samt Grammatiken (MIT, jede mitgelieferte Grammatik mit eigener Lizenz) für die Syntaxhervorhebung mit.
Nur für Tests: xunit (Apache-2.0), Xunit.SkippableFact (MS-PL), Microsoft.NET.Test.Sdk (MIT) und die Headless-Pakete von Avalonia, die die Oberfläche ohne Bildschirm und ohne Berechtigungen in eine PNG-Datei zeichnen.
Diese Website
Ausgeliefert von ASP.NET Core auf .NET 10, auf dem Server gerendert, ohne JavaScript an Ihren
Browser. Die Schriften sind Newsreader, Inter und IBM Plex Mono, alle unter der SIL Open Font
License und von dieser Domain ausgeliefert statt von Google Fonts. Deshalb kann die
Content-Security-Policy default-src 'none' mit 'self' lauten: Es gibt keinen externen Host,
den diese Seite kontaktiert, und damit auch keinen Dritten, der zu nennen wäre.
Woher Runlix kommt
Runlix ist aus dem Code von OllamaManager hervorgegangen, der eingefroren ist und weiterhin
unter github.com/alexander64/ollamanager funktioniert. Die Roadmap erklärt, was sich geändert
hat und warum.