Utviklet av | Mozilla Foundation |
---|---|
Første versjon | 1997 |
Siste versjon | 1.7.13 (2. september 2020) |
Innskudd | github.com/mozilla/rhino |
Skrevet i | Java |
Type | JavaScript-motor |
Tillatelse | Mozilla Public License |
Nettsted | www.mozilla.org/rhino og www.mozilla.org/rhino |
Rhino er en gratis JavaScript- motor . Den er utviklet helt i Java av Mozilla Foundation (som også tilbyr SpiderMonkey , en JavaScript- motor skrevet i C ).
Den distribueres under vilkårene for MPL og GNU GPL lisenser .
Netscape startet Rhino-prosjektet i 1997 ved starten av utviklingen av Javagator , en Java- nettleser ment å erstatte deres allerede eksisterende nettleser, Netscape Navigator . Javagator ble forlatt, men Rhino overlevde, og ble til og med sparket av flere selskaper, som finansierte utviklingen. Mozilla Foundation arvet Rhino i 1998, og gjorde det åpen kildekode deretter.
Neshorn kan brukes alene, som tolk, men også integrert i en applikasjon. På samme måte er den i stand til å operere i tolket modus, akkurat som i kompilert modus.
Rhino gir i prinsippet innfødte objekter definert av språkspesifikasjonen (f.eks String. DateEtc.). Vi finner derfor ikke at de vanligvis blir eksponert av JavaScript-motorobjektene i forskjellige nettlesere (f.eks window. documentEtc.).
Imidlertid tillater Java-implementeringen en bruker å bruke alle tilgjengelige Java-objekter, som vist i følgende kode (hentet fra Mozilla Help):
js> f = new java.io.File("test.txt") test.txtI tillegg avslører bruken i skallmodus en rekke tilleggsfunksjoner, som du finner på Mozilla-nettstedet.
Hver av Rhino-innebygde applikasjoner kan vise sine egne funksjoner. For eksempel, som en nettleser, ville Javagator ha eksponert en full HTML DOM for Rhino, slik at manipulering av HTML-miljøet via JavaScript ble mulig.
Endelig tilbyr versjon 6 av Java API nå et generelt grensesnitt for implementering av hvilken som helst skriptmotor, og inkluderer Rhino som standard. Rhino blir deretter erstattet av Nashorn , og starter med Java SE 8.
Rhino er i stand til å operere i kompilert modus (skriptet kompileres deretter til Java bytecode, Rhino kan til og med generere binærfiler .classog knytte dem til pakker), og i tolket modus (skriptet blir deretter samlet til JavaScript-objekter).
I kompilert modus kan Rhino konkurrere i ytelse med SpiderMonkey , dets C-implementerte ekvivalent, men den vil fortsatt lide av minnelekkasjer . I tolket modus er skriptkompilering raskere, og det oppstår ingen minnelekkasjer, men skriptet er da tregere.