Opracowany przez | Fundacja Mozilla |
---|---|
Pierwsza wersja | 1997 |
Ostatnia wersja | 1.7.13 (2 września 2020 r) |
Kaucja | github.com/mozilla/rhino |
Napisane w | Jawa |
Rodzaj | Silnik JavaScript |
Licencja | Licencja publiczna Mozilli |
Stronie internetowej | www.mozilla.org/rhino i www.mozilla.org/rhino |
Rhino to darmowy silnik JavaScript . Został opracowany w całości w Javie przez Mozilla Foundation (która dostarcza również SpiderMonkey , silnik JavaScript napisany w C ).
Jest rozpowszechniany na warunkach licencji MPL i GNU GPL .
Netscape rozpoczął projekt Rhino w 1997 roku na początku rozwoju Javagatora , przeglądarki Java, która miała zastąpić ich już istniejącą przeglądarkę Netscape Navigator . Javagator został porzucony, ale Rhino przeżył, a nawet został zwolniony przez wiele firm, które sfinansowały jego rozwój. Fundacja Mozilla odziedziczyła Rhino w 1998 roku, a następnie uczyniła go otwartym kodem źródłowym.
Rhino może być używany samodzielnie, jako interpreter, ale może być również zintegrowany z aplikacją. Podobnie może działać w trybie interpretowanym, podobnie jak w trybie kompilowanym.
Rhino stanowi w zasadzie, że rodzime obiekty zdefiniowane w specyfikacji języka (na przykład String, Dateetc.). Nie są zatem znaleźć je zwykle narażony przez obiekty silnik JavaScript w różnych przeglądarkach (np window, documentitd.).
Jednak jego implementacja w języku Java pozwala użytkownikowi na użycie wszystkich dostępnych obiektów Java, jak pokazano w poniższym kodzie (pobranym z Pomocy Mozilli):
js> f = new java.io.File("test.txt") test.txtPonadto jego użycie w trybie powłoki ujawnia szereg dodatkowych funkcji, które można znaleźć na stronie Mozilli.
Każda z aplikacji osadzających Rhino może mieć swoje własne funkcje. Na przykład, jako przeglądarka internetowa, Javagator udostępniłby Rhino pełny HTML DOM , umożliwiając manipulowanie środowiskiem HTML poprzez JavaScript.
Wreszcie, wersja 6 Java API oferuje teraz ogólny interfejs do implementacji dowolnego silnika skryptowego i domyślnie zawiera Rhino. Rhino jest następnie zastępowany przez Nashorn , poczynając od Java SE 8.
Rhino może działać w trybie skompilowanym (skrypt jest następnie kompilowany do kodu bajtowego Javy, Rhino może nawet generować pliki binarne .classi kojarzyć je z pakietami) oraz w trybie interpretowanym (skrypt jest następnie kompilowany do obiektów JavaScript).
W trybie skompilowanym Rhino może konkurować wydajnością ze SpiderMonkey , jego odpowiednikiem zaimplementowanym w C, ale nadal cierpiałby z powodu wycieków pamięci . W trybie interpretowanym kompilacja skryptu jest szybsza i nie ma wycieków pamięci, ale skrypt działa wolniej.