Un lenguaje de programación estáticamente tipado, orientado a expresiones y auto-alojado — escrito en Rust, con tres motores que coinciden byte a byte.
raylang apunta a producción real: genéricos, traits, pattern matching, concurrencia multicore por actores, errores como valores, y tres motores byte-idénticos — una VM de bytecode para desarrollar, un binario nativo para desplegar y un intérprete como oráculo de validación. Se compila a sí mismo y corre en el navegador vía WebAssembly.
Instalables desde el índice oficial — en tu
ray.toml:
[registry]
index = "git+https://github.com/ray-language/ray-index@main"y ray add <paquete>:
| Paquete | Qué trae |
|---|---|
net |
la pila de red: HTTP(S) cliente y servidor web, HTTP/2+gRPC, WebSocket, DNS, Redis, JWT/OAuth2/SCRAM/SigV4, métricas Prometheus, tracing W3C, correo |
db |
clientes de bases de datos: Postgres, MySQL, MongoDB (BSON), SQLite |
web |
framework de aplicación estilo Express sobre net/webserver |
rpc |
RPC raylang↔raylang: framing sobre TCP, deadlines, trace, pool de conexiones |
tz |
hora local IANA (parser TZif puro; la ambigüedad DST como API) |
cron |
expresiones cron + timers recurrentes (UTC y hora local) |
Cada paquete es un espejo de solo lectura publicado desde el monorepo del lenguaje, con tag inmutable por versión y hash de contenido verificado en cada descarga.
El lenguaje se prueba construyendo software real — un catálogo de apps de dogfood, cada una estrujando un eje distinto: raygate (API gateway), rayq (cola con WAL), raypass (vault cifrado), raysync (sync con delta por bloques), raykv (servidor RESP2), takeit (transferencia P2P cifrada), raytop (monitor TUI), raygame (Tetris a 30 fps)… y más en los repositorios de la organización. Son demos de dogfood, no productos con soporte.
El toolchain (raylang) vive en esta organización;
el desarrollo de los paquetes ocurre en su monorepo (packages/) y los PRs van allí — ver su
CONTRIBUTING.md para el flujo y la batería de admisión de módulos.
