Mixe
El lenguaje que mezcla lo que ya sabes
Para equipos pequeños que no quieren elegir un solo lenguaje
¿Qué es Mixe?
Mixe es un compilador políglota. Escribe tu lógica en Mixe y delega las partes críticas a C, Obj-C, JavaScript, ASM o Pascal: todo se compila en un único binario autónomo de ~2MB, sin runtime externo ni dependencias.
- Memoria automática (ARC): conteo de referencias en compilador, verificado con valgrind — 0 bytes fugados en los fixtures de estrés.
- Dos backends: QBE (LLVM backend) y MNB (backend nativo x86_64 propio) con paridad funcional completa.
- Standard library: std.string, std.list, std.fs, std.env, std.json y std.state para apps con estado.
- UI declarativa: interfaces con estado global compartido entre el frontend y la lógica del programa.
Ejemplos
Bloc de Notas
Demo básica: UI declarativa con input y estado global persistente
(std.state.*).
Snake 3D
Demo avanzada: juego completo en Mixe (movimiento, colisiones,
puntuación) renderizado en 3D con Three.js/WebGL vía @js
y el intérprete IPC.
Ejemplo
@asm(x86_64, "nasm")
fn fastSum(a: Int, b: Int) -> Int {
asm {
mov rax, rdi
add rax, rsi
ret
}
}
@js
fn fastMultiply(a: Int, b: Int) -> Int {
js { return a * b; }
}
fn main() {
print(fastSum(40, 2))
print(fastMultiply(6, 7))
}
Instalación
- Distribución directa (recomendada):
curl -LO https://mixescript.pages.dev/downloads/mixe-linux-x64.tar.gz && tar -xzf mixe-linux-x64.tar.gz - Vía NPM:
npm install -g mixe-compiler - Homebrew:
brew tap Mixescore/tap && brew install mixe(requiere repositorio público)
Primeros pasos
¿Quieres el manual completo? Consulta la guía de usuario: instalación, sintaxis, interop, UI, paquetes y distribución.
Crea tu primer proyecto y ejecútalo:
mixe init mi-app
cd mi-app
mixe run
Cuando esté listo, genera el binario de producción:
mixe build --release
También puedes comprobar que tu código compila sin generarlo:
mixe check src/main.mixe