Legal
Sobre qué está construido Runlix
Cada componente de terceros que Runlix distribuye o traduce, con su licencia comprobada en la fuente. La lista la sostiene una prueba: una dependencia sin atribuir no llega a una versión publicada.
Actualizado 2026-09-12
Runlix no está escrito desde cero. Se apoya en MLX de Apple, en un conjunto de crates de Rust, en
Avalonia y —para las arquitecturas de modelo— en código traducido desde mlx-lm en lugar de
simplemente invocado.
Esta página refleja el fichero NOTICE del repositorio, y ese fichero no lo mantienen las buenas
intenciones: una prueba hace fallar la compilación si una dependencia directa de la aplicación,
de sus pruebas o del motor no aparece en él. Una dependencia sin atribuir no llega a una
versión publicada. Cada licencia de aquí abajo se leyó en los metadatos del propio paquete, no
de memoria.
Código nativo — MLX
MLX — MIT, © 2023 Apple Inc. Extraído del wheel de PyPI mlx-metal; libmlx.dylib y
mlx.metallib se redistribuyen dentro del paquete.
mlx-c — MIT, © 2023-2024 Apple Inc. La interfaz C de MLX, compilada desde el código fuente;
libmlxc.dylib se redistribuye. Las fuentes están incorporadas byte a byte sin modificar, y
nuestras correcciones viven como ficheros de parche aparte: un cambio hecho sobre el propio
código desaparecería en la primera actualización, y desaparecería en silencio.
Código traducido — las arquitecturas de modelo
mlx-lm — MIT, © 2023 Apple Inc.
Las arquitecturas del motor están portadas desde mlx_lm/models/. No es código copiado: es
una traducción a Rust idiomático, y la correspondencia se mantiene a nivel de ficheros enteros y
no de líneas. mlx-lm sirve además como oráculo de referencia que decide si la traducción es
correcta.
| En nuestro código | Viene de | Versión |
|---|---|---|
| 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 |
| máscaras | mlx_lm/models/base.py |
mlx-lm 0.31.3 |
Una copia congelada de las fuentes desde las que se tradujo vive en el repositorio con su versión anotada, y así es como el proyecto se entera de que el original ha cambiado. Ninguna otra cosa lo hace: ningún compilador y ningún gestor de paquetes le avisará jamás de que el código derivado se ha separado de su origen.
Los codificadores para embeddings de texto están traducidos del mismo modo, desde mlx-embeddings — MIT, © Prince Canuma — y verificados contra él como su propio oráculo. Todavía no se puede llegar a ellos desde la aplicación.
Crates de Rust
tokenizers — Apache-2.0, Hugging Face · minijinja y minijinja-contrib — Apache-2.0, Armin Ronacher · serde_json — MIT o Apache-2.0.
minijinja-contrib se gana su sitio por un motivo concreto: las plantillas de conversación están
escritas para el Jinja2 de Python y llaman a métodos de cadena propios de Python. Su módulo
pycompat es lo que hace que lleguen a representarse siquiera.
El descargador es un proceso aparte y lleva hf-hub — Apache-2.0, Hugging Face. Aparte
porque hf-hub arrastra consigo tokio, reqwest y hyper: 356 crates frente a los 84 del motor. El
motor que .NET carga en su mismo proceso se queda en 84.
Las dependencias transitivas quedan anotadas en el fichero de bloqueo del motor.
Paquetes de .NET
Avalonia y sus paquetes Desktop, Fluent, tipografía Inter, ReactiveUI, Headless y Skia — MIT. Microsoft.Data.Sqlite — MIT. Tmds.DBus.Protocol — MIT.
LiveMarkdown.Avalonia — Apache-2.0, de DearVa, versión 1.12.2 — está incorporado al repositorio en lugar de referenciado, con el texto completo de su licencia junto a las fuentes. Es lo que representa el Markdown de las respuestas según van llegando. Trae consigo Markdig (BSD-2-Clause) y TextMateSharp con sus gramáticas (MIT, cada gramática incluida con su propia licencia) para el resaltado de sintaxis.
Solo para pruebas: xunit (Apache-2.0), Xunit.SkippableFact (MS-PL), Microsoft.NET.Test.Sdk (MIT) y los paquetes headless de Avalonia, que dibujan la interfaz en un PNG sin pantalla y sin permisos.
Este sitio
Servido por ASP.NET Core sobre .NET 10, representado en el servidor, sin JavaScript enviado a tu
navegador. Las tipografías son Newsreader, Inter e IBM Plex Mono, todas bajo la SIL Open Font
License y servidas desde este dominio, no desde Google Fonts. Por eso la política de
seguridad de contenido puede ser default-src 'none' con 'self': no hay ningún host externo al
que este sitio se conecte, y por tanto ningún tercero que declarar.
De dónde viene Runlix
Runlix nació del código de OllamaManager, que sigue congelado y funcionando en
github.com/alexander64/ollamanager. La hoja de ruta explica qué cambió y por qué.