Ctrl K
ComunidadGuías…
GITHUB · ANALIZADO

Norupo-tunnel

Servicio de tunelamiento local en Rust que expone localhost al internet mediante multiplexado gRPC, escalable horizontalmente como alternativa a ngrok.

Ficha actualizada 22 sept 2026, 18:26 · upstream 22 sept 2026, 17:37 · release v0.1.0

Ver códigoProblemas y ayudaRepositorio ↗
00

Qué es Norupo-tunnel

Descripción editorial construida a partir del repositorio, su documentación y sus señales de mantenimiento.

Norupo es un servicio de tunelamiento local autocontenido escrito en Rust. Permite exponer una dirección IP pública a través de un puerto local, similar a cómo lo hacen ngrok o cloudflared, pero con la ventaja de que tú eres el nodo edge.

El proyecto ofrece un enfoque de multiplexado gRPC donde cada agente se conecta mediante un único stream lógico persistente, en lugar de un stream por petición. Esto hace que la tabla de streams del nodo edge escala con el número de agentes, no con el tráfico. Además, ningún dato debe viajar desde el cliente hasta el servidor, lo que permite funcionar detrás de NATs, proxies corporativos o redes WiFi públicas.

El servicio es horizontalmente escalable: los nodos edge son Stateless excepto por una tabla de enrutamiento compartida y un registro de claims. Cualquier nodo puede servir cualquier petición. El control del flujo se realiza a nivel de stream (flow control per-stream), aplicando backpressure al upload público en lugar de consumir memoria en el edge.

Se soporta Linux (cualquier distribución, mediante builds estáticas con musl), macOS (Intel y Apple Silicon) y Windows.

CASOS DE USO
  • Exponer servicios locales a internet sin necesidad de un servidor proxy externo
  • Servir contenido local desde redes WiFi públicas o redes corporativas restringidas
  • Desarrolladores que necesitan acceso remoto a sus repositorios o herramientas de desarrollo
  • Entornos con restricciones de red donde no se puede instalar software en el cliente
  • Microservicios que requieren acceso público sin dependencias externas
PUNTOS DESTACADOS
  • Multiplexado gRPC por stream: cada petición es un stream lógico persistente sobre una conexión única, escalando con agentes no con tráfico
  • Sin datos en tránsito desde el cliente al servidor: todo el procesamiento ocurre localmente, ideal para redes restringidas o privadas
  • Escalable horizontalmente: múltiples nodos edge pueden servir solicitudes simultáneas sin colisiones de hostname
  • Soporte nativo en Linux (musl), macOS y Windows con builds estáticas
  • Protocolo definido por contrato de API: el wire protocol es único y no depende de librerías externas
PRECAUCIONES
  • El modo TCP raw aún no tiene implementación end-to-end, solo está definido en el protocolo
  • La resolución DNS se realiza mediante un registro wildcard local; no hay soporte nativo para DNS público
  • No incluye autenticación de usuarios o gestión de tokens por defecto (se requiere configuración manual)
  • El rendimiento puede verse afectado por la sobrecarga del multiplexador gRPC en entornos con tráfico muy alto
  • La versión actual es temprana; algunas funcionalidades como el modo TCP raw están incompletas
01

Perfil de infraestructura

Estimación inicial derivada del repositorio y de los servicios detectados.

CPU1 vCPUrecomendación inicial
MEMORIA1 GBRAM estimada
DISCO20 GBalmacenamiento base
COMPLEJIDADlownivel de operación
02

Despliegue detectado

Qué señales reales de instalación hemos encontrado.

Despliegue manual

Para producción, instala los paquetes AUR (paru o yay) y configura systemd para autostart. Usa un load balancer L4 para escalar múltiples nodos edge con una tabla de enrutamiento compartida. Configura tokens en /etc/norupo/tokens.json y activa el servicio con systemctl enable --now norupo-server. Para producción, considera usar HTTPS con TLS terminación en front-end (Caddy o nginx) y implementa autenticación mediante tokens. El protocolo gRPC multiplexado es la base de diseño; cualquier cliente que se conecte debe implementar la misma API.

—Dockerfile
—Compose
—One-click
03

Stack y dependencias

Componentes inferidos a partir de manifests, configuración y documentación.

FRAMEWORKS
Node.jsRust
SERVICIOS
Redis
BASES DE DATOS
Redis
PUERTOS
300080807000
05

Puede sustituir a

Relaciones detectadas por el análisis del repositorio y su categoría.

06

Experiencia real de la comunidad

Ayuda a contrastar la estimación automática con instalaciones reales.

Todavía no hay datos comunitarios para este proyecto.