Zum Inhalt springen

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.