Noticias Programación

WCGI es WebAssembly de la vieja escuela + CGI

WCGI combina las últimas innovaciones con la tecnología de la vieja escuela. ¿A que final? CGI está muerto. ¡Viva la WCGI!


CGI (Common Gateway Interface) era una forma en que los servidores web y los programas del banda del servidor interactuaban simplemente aceptando una solicitud en STDIN y devolviendo una respuesta en STDOUT. Sin secuestro, el protocolo era ineficiente y requería un nuevo proceso para reaparecer cada vez que se atendía una página. Como tal, ha sido reemplazado por tecnologías mejores, más rápidas y más seguras, con una mejor integración del servidor web.

Uno de ellos fue FastCGI, que se introdujo como un término medio entre el módulo Apache PHP y la aplicación CGI. Permitió que un intérprete fuera del servidor web ejecutara los scripts e incluyó los beneficios de seguridad de CGI sin ninguna de las ineficiencias de CGI. Para ver un ejemplo en Java, consulte Servlets.

Ahora ingrese al nuevo y fuerte mundo de WebAssembly. En «Spin trae WebAssembly a la aglomeración» encontramos que:

Primero, WebAssembly se anunció como un tiempo de ejecución que se integraría en todos los principales navegadores web para escribir código en cualquier idioma que pudiera coleccionar en su formato de código de bytes. Oportuno a esto, los navegadores más populares habrían podido ejecutar no solo JavaScript, sino incluso binarios compilados, de ahí la segunda propiedad asociada con él: el criminal de Javascript.

A medida que avanzaban las cosas, ambas hipótesis fueron refutadas. WebAssembly se liberó de las restricciones del navegador y se puede usar para ejecutar microservicios o funciones sin servidor o incluso ejecutar binarios Wasm en la renglón de comandos para que incluso pueda desarrollar aplicaciones CLI multiplataforma. Entonces, en lado de eliminar JavaScript, incluso podría interactuar con él.

Spin proporciona interfaces para escribir módulos WebAssembly que pueden hacer cosas como objetar a solicitudes HTTP. Con Spin, reduce la sobrecarga de microservicios al eliminar el servidor web (reemplazado por un servidor WAGI) y escribir controladores HTTP en cualquier idioma que queramos (Rust, C, JavaScript, Python, etc.), que luego se compilan en WebAssembly.

Y aquí está: WAGI – WebAssembly Gateway Interface. Servidor WAGI, proporciona un servidor web que contesta a las solicitudes. En cada solicitud, carga el módulo WebAssembly apropiado, traduce la solicitud HTTP en una solicitud CGI y luego ejecuta el módulo. Todos los subprocesos y la compañía de estado se manejan en el servidor WAGI, mientras que un módulo WebAssembly de WAGI solo necesita manejar una sola solicitud.

El nuevo pequeño en el sillar ahora es WCGI como en WebAssembly + CGI. WCGI representa un enfoque refinado para el incremento del banda del servidor, integrando la flexibilidad, la seguridad y el rendimiento de WebAssembly. WCGI fue descubierto por Wasmer quien, mientras se aventuraba en las soluciones sin servidor, se enfrentó a una pregunta crucial: ¿deberían construir su propio situación y valer el aventura de encerrar a los desarrolladores en un huerta amurallado, o deberían adoptar un habitual libre que les permitiera usar el código existente?

Resulta que WebAssembly+CGI tenía más sentido ya que usted:

Puede aldabear a módulos wasm en lado de ejecutables nativos Puede reutilizar sus aplicaciones CGI existentes al compilarlas en WASI (AssemblyScript, C, C++, Go, PHP, Python, . . . ) Proporcionar paquetes ultrapequeños que contendrán solo su deducción comercial y estática capital , sin pilas HTTP ni contenedores Docker voluminosos Tiene una ejecución completa en un espacio separado: el código de WebAssembly se ejecuta en un espacio separado, con una instancia aislada por solicitud.

Pero WAGI se parece mucho a WCGI, ¿verdad? En esencia, entreambos son medios para escribir y ejecutar controladores de respuesta HTTP como módulos WebAssembly.

Son dos protocolos muy similares, uno fundado por Wasmer y el otro por Deis Labs. Que prevalecerá sólo el tiempo puede mostrar. Sin secuestro, tanto WCGI como WAGI son actualmente compatibles.

En conclusión, TI, si perfectamente es una incubadora de tecnologías innovadoras, tiene una tendencia a dar vueltas reviviendo tecnologías antiguas y devolviéndolas a la vida, por ejemplo, Microservicios en Monolith o SPA en SSR. Este es otro caso en el que la simplicidad de la tecnología ‘antigua’ es tan insuperable que es difícil de resistir.

Ya existe una plantilla de Rust y PHP para crear un paquete compatible con WCGI que se puede difundir en WAPM, así como una demostración de WordPress de WCGI. Enlaces a continuación.

Publicidad:

También puede gustarte...