El matemático francés Fabrice Bellard, quien una vez fundó los proyectos QEMU y FFmpeg, y también creó la fórmula más rápida para calcular pi y desarrolló el formato de imagen.
Implementación de JavaScript
bench-v8 está por delante del motor
Además de la biblioteca para integrar el motor en las aplicaciones, el proyecto también ofrece el intérprete qjs, que se puede utilizar para ejecutar código JavaScript desde la línea de comandos. Además, está disponible el compilador qjsc, capaz de generar archivos ejecutables independientes que no requieren dependencias externas.
Características principales:
- Compacto y fácil de integrar en otros proyectos. El código incluye solo unos pocos archivos C que no requieren dependencias externas para compilarse. La aplicación simple compilada ocupa unos 190 KB;
- Muy alto rendimiento y bajo tiempo de arranque. Superar las 56 100 pruebas de compatibilidad de ECMAScript toma alrededor de 300 segundos cuando se ejecuta en un solo núcleo de una PC de escritorio típica. La inicialización del tiempo de ejecución tarda menos de XNUMX microsegundos;
- Soporte casi completo para la especificación ES2019 y soporte completo para el Anexo B, que define componentes para compatibilidad con aplicaciones web más antiguas;
- Aprobación completa de todas las pruebas de ECMAScript Test Suite;
- Soporte para compilar código Javascript en archivos ejecutables sin dependencias externas;
- Recolector de basura con recuento de referencias sin ciclo de limpieza, lo que permitió un comportamiento predecible y un consumo de memoria reducido;
- Un conjunto de extensiones para cálculos matemáticos en el lenguaje JavaScript;
- Un shell para ejecutar código en modo de línea de comandos que admite el resaltado de código contextual;
- Una biblioteca estándar compacta con enlaces sobre la biblioteca C.
El proyecto también desarrolla tres bibliotecas C complementarias involucradas en QuickJS y adecuadas para una aplicación separada:
- libregexp es una implementación rápida de expresiones regulares que cumple totalmente con la especificación Javascript ES 2019;
- libunicode: una biblioteca compacta para trabajar con Unicode;
- libbf es una implementación de operaciones de punto flotante de precisión arbitraria y funciones trascendentales de redondeo exacto.
Fuente: opennet.ru