Ir al contenido

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é.