El fundador de QEMU y FFmpeg ha publicado el motor JavaScript QuickJS

El matemático francés Fabrice Bellard, fundador de los proyectos QEMU y FFmpeg, además de haber creado la fórmula más rápida para calcular el número Pi y desarrollado un formato de imagen BPG, ha publicado la primera versión de un nuevo motor JavaScript QuickJS. El motor se distingue por su compacidad y está orientado a la integración en otros sistemas. El código del proyecto está escrito en C y se distribuye bajo la licencia MIT. También está disponible una versión del motor compilada en WebAssembly con Emscripten, adecuada para ejecutarse en navegadores.

La implementación de JavaScript soporta incluye la especificación ES2019, incluidos módulos, generadores asíncronos y proxies. Opcionalmente, se admiten funciones matemáticas no estándar la extensión para JavaScript, como los tipos BigInt y BigFloat, así como sobrecarga de operadores. En términos de rendimiento, QuickJS es significativamente a superior a sus equivalentes, por ejemplo, en la prueba
bench-v8, que supera al motor XS por un 35%, DukTape más de dos veces, JerryScript tres veces, y MuJS por siete veces.

Además de la biblioteca para integrar el motor en aplicaciones, el proyecto también ofrece un intérprete qjs que puede usarse para ejecutar código JavaScript desde la línea de comandos. Además, está disponible un compilador qjsc que puede generar archivos ejecutables listos para ejecutarse de forma aislada, sin dependencias externas.

Características principales:

  • Compacidad y facilidad de integración en otros proyectos. El código consta de solo unos pocos archivos en C que no requieren dependencias externas para la compilación. Una aplicación mínima compilada ocupa alrededor de 190 KB;
  • Rendimiento extremadamente alto y bajo tiempo de arranque. La ejecución de 56,000 pruebas de compatibilidad con ECMAScript lleva alrededor de 100 segundos en un núcleo de una PC de escritorio convencional. La inicialización del runtime toma menos de 300 microsegundos;
  • Casi soporte completo de la especificación ES2019 y soporte total de la aplicación "B", que define componentes para la compatibilidad con aplicaciones web antiguas;
  • Cumplimiento completo de todas las pruebas del conjunto de ECMAScript Test Suite;
  • Soporte para compilar código JavaScript en archivos ejecutables sin dependencias externas;
  • Un recolector de basura basado en conteo de referencias sin limpieza cíclica, que ha permitido lograr un comportamiento predecible y reducir el consumo de memoria;
  • Un conjunto de extensiones para cálculos matemáticos en JavaScript;
  • Interfaz para ejecutar código en modo de línea de comandos, que soporta la resaltación de sintaxis;
  • Biblioteca estándar compacta con envolturas sobre la biblioteca C.

El proyecto también desarrolla tres bibliotecas C auxiliares, utilizadas en QuickJS y adecuadas para aplicaciones independientes:

  • libregexp — implementación rápida de expresiones regulares, totalmente compatible con la especificación de Javascript ES 2019;
  • libunicode — biblioteca compacta para trabajar con Unicode;
  • libbf — implementación de operaciones de punto flotante de precisión arbitraria y funciones transcendentales con redondeo exacto.

Fuente: opennet.ru

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster