Французький математик Фабріс Беллар (Fabrice Bellard), який свого часу заснував проекти QEMU і FFmpeg, а також створив найшвидшу формулу обчислення числа Пі та розробив формат зображень
Реалізація JavaScript
bench-v8 випереджає двигун
Крім бібліотеки для вбудовування движка в додатку проектом також пропонується інтерпретатор qjs, який можна використовувати для запуску коду JavaScript з командного рядка. Більш того, доступний компілятор qjsc, здатний на виході генерувати придатні для відокремленого запуску виконувані файли, що не потребують зовнішніх залежностей.
Основні особливості:
- Компактність та простота вбудовування в інші проекти. Код включає лише кілька файлів мовою Сі, які вимагають збирання зовнішніх залежностей. Скомпільований найпростіший додаток займає близько 190 Кб;
- Дуже висока продуктивність та малий час запуску. Проходження 56 тисяч тестів на сумісність із ECMAScript займає близько 100 секунд під час виконання на одному ядрі звичайного настільного ПК. Ініціалізація runtime займає менше 300 мікросекунд;
- Майже повна підтримка специфікації ES2019 та повна підтримка програми B, що визначає компоненти для сумісності зі старими web-додатками;
- Повне проходження всіх тестів із набору ECMAScript Test Suite;
- Підтримка компіляції коду мовою Javascript у виконувані файли без зовнішніх залежностей;
- Складальник сміття на основі підрахунку посилань без циклічного виконання чищення, що дозволив досягти передбачуваної поведінки та зниження споживання пам'яті;
- Набір розширень для математичних обчислень на JavaScript;
- Оболонка для виконання коду в режимі командного рядка, що підтримує контекстне підсвічування коду;
- Компактна стандартна бібліотека з обв'язками над Бібліотекою.
Проектом також розвиваються три супутні Сі-бібліотеки, задіяні в QuickJS та придатні для окремого застосування:
- libregexp - швидка реалізація регулярних виразів, повністю сумісних зі специфікацією Javascript ES 2019;
- libunicode – компактна бібліотека для роботи з Unicode;
- libbf - реалізація операцій з плаваючою комою довільної точності та трансцендентних функцій з точним округленням.
Джерело: opennet.ru