Desarrollo Activo — Código Abierto AGPLv3

Unuko ToolKit
El lab eSIM 5G que siempre quise tener.

Trabajé durante años en telecomunicaciones con JavaScript y sé lo difícil que es probar en entornos reales y lidiar con configuraciones complejas. Creé Unuko para que cualquier desarrollador JS/TS pueda levantar un entorno completo de eSIM 5G en segundos.

$ unuko core5g start
Coming Soon...
unuko-cli ~ /lab
El enfoque técnico

¿Por qué construirlo en TypeScript/JavaScript?

En telecomunicaciones es común enfrentarse a código cerrado en C++ y entornos imposibles de depurar. Elegí el ecosistema JS/TS moderno para crear un entorno de pruebas accesible, predecible y abierto.

CLI Unificado `unuko`

Diseñado para evitar configuraciones manuales tediosas. Con comandos sencillos como 'unuko core5g start' levanto todo el laboratorio al instante.

Estructura Extensible

Creé este ToolKit de forma modular. Puedes modificar los flujos lógicos, añadir estados personalizados o integrar tus propios componentes sin restricciones de código propietario.

Ecosistema Telco Moderno

Decidí dejar atrás el código legacy en C/C++. Orquesté todo con TypeScript y Fastify para mayor velocidad, validaciones con Zod y máquinas de estado con XState.

Estándares GSMA Nativos

Implementé compatibilidad nativa con perfiles de eSIM de Consumo (SGP.22) y el nuevo estándar IoT (SGP.32) para probar aprovisionamientos reales sin hardware físico.

Auditoría asistida por IA

Integré un auditor con Gemini para traducir a lenguaje natural los crípticos códigos APDU hexadecimales de la tarjeta eUICC y las tramas del SM-DP+.

Criptografía por SoftHSM

Configuré SoftHSM y PKCS#11 para emular el almacenamiento seguro del chip real, permitiendo generar y firmar claves elípticas secp256r1 en tu propia máquina.

DASHBOARD INTEGRADO

Depuración visual y control total

Se acabó depurar a ciegas con registros y trazas indescifrables. Unuko ToolKit incluye un panel web interactivo para monitorear cada capa de la simulación 5G.

http://localhost:8080/sessions
Explorador de Sesiones

Explorador de Sesiones

Monitorea la actividad del core 5G y de la base de datos de suscriptores en tiempo real. Observa el estado de tus nodos de simulación y el feed de telemetría de un vistazo.

La historia detrás de Unuko

Por qué decidí construir
este entorno en primera persona.

¡Hola! Soy el creador de Unuko. He pasado gran parte de mi carrera profesional inmerso en el complejo mundo de las telecomunicaciones, mientras que mi ecosistema de programación principal siempre ha sido JavaScript y TypeScript.

Durante años, me enfrenté constantemente al mismo obstáculo: lo increíblemente difícil, costoso y frustrante que es probar desarrollos de red en entornos reales. En las telecos tradicionales, el software es propietario, los estándares se implementan a puerta cerrada y desplegar un laboratorio mínimo de eSIM requiere configurar decenas de máquinas virtuales complejas, interfaces de red virtual oscuras y depender de hardware privativo.

Me cansé de lidiar con scripts legacy indescifrables, fallos de segmentación silenciosos y configuraciones propietarias que solo funcionan en entornos corporativos cerrados.

Mi misión con Unuko es democratizar las telecomunicaciones. Quiero que cualquier desarrollador, especialmente si viene del ecosistema JS/TS, pueda levantar un núcleo 5G virtualizado y simular aprovisionamiento remoto de eSIM en segundos en su propia máquina.

Un desarrollador de telecomunicaciones buscando cambiar las reglas del juego.

El Diagnóstico del Problema

Resumen de mi experiencia

!

El Problema de Configuración

Montar Open5GS y Osmocom requiere entender protocolos crípticos y escribir cientos de líneas de configuraciones YAML y JSON propensas a errores.

!

El Hardware Inalcanzable

Probar eSIMs físicas y chips eUICC solía requerir lectores de tarjetas inteligentes, redes de antenas físicas y hardware comercial restrictivo.

Mi Solución: Unuko ToolKit

Orquestación de infraestructura mediante máquinas virtuales (Lima/VM) controladas en TS. Simulamos las tarjetas SIM por software (SoftHSM) conectándolas a antenas y cores 5G emulados.

const creador = {
origen: "Telecomunicaciones",
pasion: "Ecosistema JS/TS",
mision: "Facilitar el acceso al 5G",
};
// Corre unuko core5g start para comprobarlo
Ecosistema del Laboratorio

Soportado por estándares y software libre

Unuko ToolKit orquesta las herramientas libres de telecomunicaciones más potentes del sector y expone sus capacidades mediante un CLI y panel web unificados.

Open5GS

5G Core Network

Integración nativa con Open5GS. Despliega Network Functions (AMF, SMF, UPF) configuradas dinámicamente y expón sus interfaces en tu entorno de desarrollo local sin fricciones.

  • Aprovisionamiento dinámico vía API/MongoDB
  • Configuración automática de PLMN y Slices

UERANSIM

RAN & UE Simulator

Simula antenas gNodeB y terminales móviles 5G. Unuko emula el socket eUICC del dispositivo móvil para recibir e instalar perfiles eSIM mediante comandos APDU.

  • Mapeo de UEs a interfaces TUN locales
  • Comandos APDU enrutados por TCP/IP

osmo-smdpp & Mock Server

Subscription Manager

Servidor de pruebas SM-DP+ de Osmocom integrado. Genera perfiles de eSIM encriptados y responde a las llamadas REST ES9+/ESips conformes a la GSMA.

  • Fases ES9+ de Autenticación y Descarga
  • Generación y firmas de BoundProfilePackage

SoftHSM & PKCS#11

Criptografía de Tarjeta

Gestión de claves y firmas usando tokens criptográficos por software. Emula el almacenamiento seguro y los algoritmos elípticos de un chip físico eUICC.

  • Par de claves ECDSA secp256r1
  • Firmas criptográficas conformes al estándar

Diseñado para resolver
mis necesidades diarias

Diseñé Unuko ToolKit pensando en resolver los cuellos de botella que más tiempo me hacían perder al programar flujos de red y eSIM en el ecosistema 5G.

Integración Continua (CI)

Diseñé el CLI para que pudiera ejecutarse de forma desatendida en GitHub Actions. Esto me permite correr flujos automatizados de eSIM y validaciones de red en cada commit sin intervención manual.

Mis pipelines de red corren 100% automatizados

Sandbox de Desarrollo Local

Quería evitar a toda costa ensuciar mi máquina principal. Con 'unuko core5g start' y 'stop' aíslo la base de datos, los simuladores de radio y las interfaces de red de forma efímera y limpia.

Mi entorno de desarrollo local, rápido y limpio

I+D Extensible y Protocolos

Creé este ToolKit 100% modular en TypeScript para que, igual que yo añado nuevas lógicas de red o estados de APDU con XState, tú puedas clonar el repo y adaptarlo a tus propios experimentos de radio y chip.

Pensado para ser abierto y modificado