Salta al contenuto

Legale

Su cosa è costruito Runlix

Ogni componente di terzi che Runlix spedisce o traduce, con la licenza verificata alla fonte. L'elenco è controllato da un test: una dipendenza non attribuita non arriva a un rilascio.

Aggiornato 2026-09-12

Runlix non è scritto dal nulla. Sta sopra MLX di Apple, su un gruppo di casse Rust, su Avalonia, e — per le architetture dei modelli — su codice tradotto da mlx-lm, non semplicemente chiamato.

Questa pagina rispecchia il file NOTICE del repository, e quel file non è tenuto in piedi dalle buone intenzioni: un test fa fallire la build se una dipendenza diretta dell'applicazione, dei suoi test o del motore non compare lì. Una dipendenza non attribuita non arriva a un rilascio. Ogni licenza qui sotto è stata letta dai metadati del pacchetto, non dalla memoria.

Codice nativo — MLX

MLX — MIT, © 2023 Apple Inc. Estratta dalla wheel PyPI mlx-metal; libmlx.dylib e mlx.metallib sono ridistribuiti dentro il pacchetto.

mlx-c — MIT, © 2023-2024 Apple Inc. L'API C di MLX, compilata da sorgente; libmlxc.dylib è ridistribuita. I sorgenti sono vendorizzati intatti byte per byte, e le nostre correzioni vivono come file di patch separati — una modifica fatta in loco sparirebbe al primo aggiornamento, e sparirebbe in silenzio.

Codice tradotto — le architetture dei modelli

mlx-lm — MIT, © 2023 Apple Inc.

Le architetture nel motore sono portate da mlx_lm/models/. Non è codice copiato: è una traduzione in Rust idiomatico, e la corrispondenza vale a livello di file interi, non di righe. mlx-lm fa anche da oracolo di riferimento che decide se la traduzione è corretta.

Nostra Viene da Versione
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
maschere mlx_lm/models/base.py mlx-lm 0.31.3

Una copia congelata dei sorgenti da cui si traduce vive nel repository con la sua versione registrata, ed è così che il progetto si accorge quando il codice a monte cambia. Nient'altro lo farebbe: nessun compilatore e nessun gestore di pacchetti avviserà mai che del codice derivato si è allontanato dalla sua origine.

Gli encoder per i vettori del testo sono tradotti allo stesso modo, da mlx-embeddings — MIT, © Prince Canuma — e verificati contro di lui come oracolo. Dall'applicazione non sono ancora raggiungibili.

Casse Rust

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

minijinja-contrib si guadagna il posto per un motivo preciso: i chat template sono scritti per il Jinja2 di Python e chiamano metodi di Python sulle stringhe. Il suo modulo pycompat è ciò che li fa rendere.

Lo scaricatore è un processo a parte e porta hf-hub — Apache-2.0, Hugging Face. A parte perché hf-hub si trascina dietro tokio, reqwest e hyper: 356 casse contro le 84 del motore. Il motore che il .NET carica in processo resta a 84.

Le dipendenze transitive sono registrate nel file di lock del motore.

Pacchetti .NET

Avalonia e i suoi pacchetti Desktop, Fluent, font Inter, ReactiveUI, Headless e Skia — MIT. Microsoft.Data.Sqlite — MIT. Tmds.DBus.Protocol — MIT.

LiveMarkdown.Avalonia — Apache-2.0, di DearVa, versione 1.12.2 — è vendorizzata invece che referenziata, col testo integrale della licenza accanto ai sorgenti. È lei a rendere il Markdown vivo delle risposte in streaming. Si porta dietro Markdig (BSD-2-Clause) e TextMateSharp con le sue grammatiche (MIT, ognuna col proprio testo di licenza nel pacchetto) per l'evidenziazione della sintassi.

Solo per i test: xunit (Apache-2.0), Xunit.SkippableFact (MS-PL), Microsoft.NET.Test.Sdk (MIT), e i pacchetti headless di Avalonia, che disegnano l'interfaccia dentro un PNG senza schermo e senza permessi.

Questo sito

Servito da ASP.NET Core su .NET 10, reso sul server, senza JavaScript spedito al tuo browser. I caratteri sono Newsreader, Inter e IBM Plex Mono, tutti sotto SIL Open Font License, serviti da questo dominio e non da Google Fonts. È il motivo per cui la politica di sicurezza dei contenuti può essere default-src 'none' con 'self': non c'è nessun host esterno che questo sito contatti, e quindi nessun terzo da dichiarare.

Da dove viene Runlix

Runlix nasce dal codice di OllamaManager, che resta congelato e funzionante su github.com/alexander64/ollamanager. La roadmap racconta cosa è cambiato e perché.