Skip to content
/ jse Public

jse - compilation of information about different engines

License

Notifications You must be signed in to change notification settings

Sdju/jse

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 

Repository files navigation

JSE - JavaScript Engines (Ru)

ЭТО ЧЕРНОВИК! Данные будут обновляться для создания в будущем полноценной нормальной базы по движкам. Любые предложения и запросы приветствуются

JSE - сборная солянка для упрощения изучения работы и внутреннего устройства различных движков и рантаймов (в процессе) JS.

Общее

Способ пощупать многие из перечисленных движков:

Еще один хороший способ поизучать кишки движков: это почитать обсуждения под тегами на StackOverflow

Основные движки

Spider Monkey

официальная информация:

байткод

cli/флаги

исходники

прочее инфо:

JavaScriptCore

официальная информация:

байткод

cli/флаги

исходники

прочее инфо:

v8

официальная информация:

байткод

cli/флаги

исходники

прочее инфо:

Достойные внимания

Hermes

JS движок лежащий в основе React Native

официальная информация:

внутрянка

cli/флаги

исходники

прочее инфо:

XS

Часть Moddable SDK, цель которого дать возможность гонять JS на IoT устройствах

официальная информация:

байткод

  • явно есть, но пока не сильно погрузился в поиски

cli/флаги

исходники

прочее инфо:

ChakraCore

Ранее движок для Edge. Но после ухода Edge на Chromium проект сосредоточен как способ использования JS как встраемого языка

официальная информация:

байткод

cli/флаги

исходники

прочее инфо:

QuickJS

Интересная простая реализация JS движка с компилятором Имеется актуальный форк Quick.js New Generation https://github.com/quickjs-ng/quickjs Однако с 2024 форк и основа взяли курс на объединение

официальная информация:

байткод

cli/флаги

исходники

прочее инфо:

Java/JVM-based

Иногда движки пишутся и на Java или для JVM конкретно

Graal.JS (GraalVM JS Support)

Движок для JS, который собирается под GraalVM На данный момент наиболее предпочтительный способ использовать связку Java+JS

официальная информация:

байткод (отсутствует, по факту работает все равно на GraalVM) cli/флаги

исходники

прочее инфо: https://habr.com/ru/companies/haulmont/articles/433432/ https://www.youtube.com/watch?v=OUo3BFMwQFo&ab_channel=Devoxx https://www.youtube.com/watch?v=a-XEZobXspo&ab_channel=Devoxx https://www.youtube.com/watch?v=3SRjPHnWHa0&ab_channel=WixEngineeringTechTalks https://www.avisi.nl/blog/an-introduction-to-graalvm-with-examples

Rhino

Раньше был частью JDK пока его не сменил Nashorn с Java 8

Судя по активности на Github все еще не заброшен, но крайне медленный по отзывам. По факту собирает JS -> JVM bytecode

официальная информация:

байткод (отсутствует, по факту работает все равно на JVM) cli/флаги

исходники

прочее инфо:

Nashorn (OpenJDK/Oracle Java)

стал deprecated с Java 11 https://openjdk.org/jeps/335 Причина: ECMAScript слишком быстро развивается, команде стало слишком сложно поддерживать актуальные версии ES

Был частью JDK начиная с Java 8. инфо

исходники

прочее инфо

Что нужно дальше?

  • Нужно еще больше различных движков
  • Нужна еще лучшая структуризация информации
  • Нужно еще больше информации о движках
  • Нужен перевод на английский (в процессе)
  • Нужно еще больше источников с хорошей глубиной
  • Перечислить возможные места для обсуждения движков JS
  • Дополнить базу знаний рантаймами, бенчмарками и проч

About

jse - compilation of information about different engines

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published