Saltar al contenido
U
En desarrollo

Umbra

Una ventana nativa de macOS para un navegador sin pantalla

Progreso70%

App de macOS que le pone ventana a Obscura, un motor de navegador headless escrito en Rust. Muestra los cuadros que el motor renderiza y le devuelve los clics, la rueda y el teclado: un navegador que se usa con el mouse, sobre un motor que no fue hecho para eso.

Qué es

Obscura no dibuja ventanas: renderiza las páginas y emite los cuadros por el protocolo de DevTools de Chrome. Umbra abre la ventana, muestra esos cuadros y devuelve cada interacción al motor.

Qué hace

  • Barra de direcciones, con búsqueda en DuckDuckGo si lo que se escribe no es un dominio.
  • Clic, arrastre, rueda y teclado reenviados a la página como eventos del protocolo.
  • Historial para ir atrás y adelante.
  • El viewport sigue a la ventana: al cambiar el tamaño, el motor renderiza al tamaño nuevo.
  • El motor viaja adentro: la app arranca su propio Obscura en un puerto efímero local y lo cierra al salir.

Cómo funciona

La interfaz está hecha con egui. La app habla con el motor por WebSocket, recibe cada cuadro como PNG y responde un acuse antes de decodificarlo: sin ese acuse el motor deja de mandar cuadros a los pocos segundos.

Estado

Funciona y está publicado como código abierto bajo Apache-2.0, la misma licencia que Obscura. Los límites que quedan son del motor: las media queries no se aplican, los elementos fijos se dibujan mal al hacer scroll y en pantallas Retina el cuadro se ve algo blando.

Colaborar

Gracias por llegar hasta acá.

Umbra y el resto de estos proyectos los construyo por mi cuenta, en mis ratos libres y sin financiamiento de nadie. Si algo de todo esto te resultó útil, te sirvió para aprender o simplemente tenés ganas de que siga, podés invitarme un café.

Cualquier monto ayuda y se agradece de verdad. También suma compartirlo o escribirme para contarme qué le cambiarías.

  • Mercado Pago
    Escaneá para leer el alias

    Alias

    germi.dev.mp

    Transferí al alias desde Mercado Pago o desde el homebanking de tu banco.

  • Monero
    Escaneá con tu billetera de Monero

    Dirección XMR

    4A9Jxy1wi7sMzpFhzXxeQY7NtUMMxbGLKDqiRyqTAZozTKUZb4faaEPV5bBfDZ8i2UGo7xnpVepupXSWBJho8abgBtaLMkv

    Dirección estándar de Monero. Copiala y pegala en tu billetera antes de enviar.