Разработчики) | Mozilla Foundation, Mozilla Corporation |
---|---|
Стабильный выпуск | 1.7.13 / 2 сентября 2020 г. ; 11 месяцев назад ( 2020-09-02) |
Репозиторий | |
Написано в | Джава |
Операционная система | Кроссплатформенность |
Платформа | Виртуальная машина Java |
Тип | Движок JavaScript |
Лицензия | MPL 2.0 |
Интернет сайт | www.mozilla.org / носорог |
Rhino - это движок JavaScript, полностью написанный на Java и управляемый Mozilla Foundation как программное обеспечение с открытым исходным кодом. Он отделен от движка SpiderMonkey, который также разработан Mozilla, но написан на C ++ и используется в Mozilla Firefox.
Проект Rhino был начат в Netscape в 1997 году. В то время Netscape планировала выпустить версию Netscape Navigator, полностью написанную на Java, и поэтому требовалась реализация JavaScript, написанного на Java. Когда Netscape прекратил работу над Javagator, как он назывался, проект Rhino был завершен как движок JavaScript. С тех пор несколько крупных компаний (включая Sun Microsystems) лицензировали Rhino для использования в своих продуктах и заплатили Netscape за это, что позволило продолжить работу над ним.
Первоначально Rhino компилировал весь код JavaScript в байт- код Java в сгенерированных файлах классов Java. Это обеспечило лучшую производительность, часто превосходящую реализацию JavaScript на C ++, выполняемую с JIT -компиляцией, но имело две ошибки. Во-первых, время компиляции было долгим, так как создание байт-кода и загрузка сгенерированных классов была ресурсоемким процессом. Кроме того, реализация эффективно приводила к утечке памяти, поскольку большинство виртуальных машин Java (JVM) не собирали неиспользуемые классы или строки, интернированные в результате загрузки файла класса. (Это изменилось в более поздних версиях Java.)
В результате осенью 1998 года в Rhino был добавлен интерпретирующий режим. Код создания файла классов был перемещен в необязательный динамически загружаемый пакет. Компиляция выполняется быстрее, и когда сценарии больше не используются, их можно собирать, как любой другой объект Java.
Rhino был передан Mozilla Foundation в апреле 1998 года. Первоначально создание файлов классов Rhino было отложено до выпуска. Однако лицензиары Rhino теперь согласились выпустить все Rhino с открытым исходным кодом, включая создание файлов классов. С момента его выпуска с открытым исходным кодом Rhino нашел множество применений, и все большее число людей вносили свой вклад в код. Проект получил свое название от животного на обложке книги по JavaScript от O'Reilly Media. Начиная с версии 1.7R11 (май 2019 г.), Rhino поддерживает Java 8 и выше, а также поддерживает ряд функций ECMAScript ES6 / ES2015.
Rhino преобразует сценарии JavaScript в классы. Rhino работает как в скомпилированном, так и в интерпретируемом режиме. Он предназначен для использования в настольных или серверных приложениях, поэтому нет встроенной поддержки для объектов веб-браузера, которые обычно связаны с JavaScript.
Rhino можно использовать в качестве отладчика с помощью оболочки Rhino. Оболочка JavaScript предоставляет простой способ запуска сценариев в пакетном режиме или в интерактивной среде для исследовательского программирования. Его можно использовать в приложениях, встраивая Rhino.
Слегка модифицированная версия Rhino 1.6r2 поставляется вместе с выпуском Sun Microsystems Java SE версии 6, выпущенным в декабре 2006 года. Это упрощает интеграцию JavaScript как части программ Java и доступ к ресурсам Java из JavaScript. Другие реализации Java 6 могут отличаться.