awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
mozilla avatar

mozilla/rhino

0
View on GitHub↗
4,594 stars·924 forks·JavaScript·23 viewsrhino.github.io↗

Rhino

Rhino is a Java-based JavaScript engine that implements an ECMAScript compatibility layer for execution inside a Java virtual machine. It serves as an embedded scripting engine and a scripting bridge, allowing JavaScript code to be integrated and executed within Java applications.

The project facilitates direct inter-language communication by mapping Java classes and objects into a JavaScript environment. This integration enables scripts to interact with internal system services and native host objects through a dedicated mapping mechanism.

The engine optimizes performance by compiling JavaScript into Java bytecode and supports a dual-mode execution model to balance startup time and runtime speed. It includes capabilities for cross-language data serialization, XML processing, and the management of isolated execution contexts for concurrent tasks.

An interactive shell is provided for real-time editing and debugging of logic.

Features

  • Embedded Scripting Engines - Provides a full JavaScript engine that can be integrated into a host Java application for dynamic logic.
  • JavaScript Bridges - Provides a specialized bridge for transferring data and control between Java and JavaScript runtimes.
  • Host Object Binding - Binds internal Java data structures as JavaScript objects to allow script-based manipulation of native services.
  • Runtime Code Optimizations - Compiles JavaScript into Java bytecode to significantly increase execution speed over interpretation.
  • JavaScript Execution Modes - Implements a dual-mode engine that switches between a lightweight interpreter and a bytecode compiler.
  • ECMAScript Engine Implementations - Implements the ECMAScript specification to ensure standard JavaScript syntax and features are supported.
  • Dynamic Logic Loading - Enables loading and executing external scripts at runtime to implement dynamic application behavior.
  • Java-Based JavaScript Engines - Provides a full JavaScript implementation written in Java for embedding script execution within Java applications.
  • Java Method Invocations - Implements mechanisms for calling Java methods and constructors directly from within the JavaScript runtime.
  • JavaScript-to-JVM Bytecode Compilation - Compiles JavaScript source directly into Java class files to increase execution speed on the JVM.
  • Integrated JavaScript Engines - Provides a JavaScript runtime embedded within the JVM to execute scriptable logic in a thread-safe environment.
  • Native Object Wrapping - Wraps native Java data structures as JavaScript objects for access and manipulation from within scripts.
  • JVM Bytecode Compilers - Translates JavaScript source code into Java bytecode for high-performance execution on the JVM.
  • Script Execution Environments - Provides an environment to execute JavaScript logic within a Java host to extend application functionality.
  • Native Object Accessors - Maps native Java classes to host objects to provide scripts with controlled access to environment services.
  • Cross-Language Marshallers - Facilitates the marshalling of complex JavaScript objects into byte streams for cross-language compatibility.
  • Concurrent Thread Execution - Manages multiple execution paths using isolated contexts to ensure thread-safe operation on shared objects.
  • Dynamic Class Generation - Dynamically generates Java classes at runtime to bridge JavaScript calls to native Java methods.
  • Execution Context Management - Manages thread-specific environment information to maintain isolated state during concurrent script execution.
  • Script-Level Global Scopes - Creates dedicated storage areas for variables and library objects required for script evaluation.
  • Performance Tuning - Allows balancing startup speed and runtime efficiency by choosing between interpretation and bytecode optimization.
  • Thread-Local Contexts - Uses thread-specific containers to ensure isolated execution state for scripts running in concurrent multitasking environments.
  • Modern Syntax - Supports contemporary ECMAScript features such as default parameters and spread syntax.
  • Tail-Call Optimizations - Prevents stack overflow in deep recursion by reusing the current stack frame for final function calls.
  • Scope Chain Management - Organizes variable lookup through a prototype-based chain of scope objects across different script contexts.
  • Bytecode Execution Optimizers - Optimizes execution by selecting between interpreted mode and bytecode compilation based on performance needs.

Star history

Star history chart for mozilla/rhinoStar history chart for mozilla/rhino

How this analysis was created: This summary and feature list are AI-generated from collected project material and can contain mistakes. Stars, license and language are imported from GitHub. Inclusion does not mean that we have tested or audited this project. Check the source documentation for any feature you depend on. Learn more on our About page.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Projects sharing features with Rhino

These projects share indexed features with Rhino. Shared tags can include platform or build tooling; verify the primary use case before treating a result as a replacement.
  • gyoogle/tech-interview-for-developergyoogle avatar

    gyoogle/tech-interview-for-developer

    17,417View on GitHub↗

    This project is a comprehensive technical interview preparation resource and computer science interview guide. It serves as an educational reference for developers to study core software engineering fundamentals and common coding patterns required for employment screenings. The repository provides detailed guides and references covering data structures and algorithms, networking and security, operating systems, and web development. It specifically focuses on the implementation and complexity analysis of sorting, searching, and graph algorithms. The material encompasses a wide breadth of comp

    Javaalgorithmcomputer-sciencecs
    View on GitHub↗17,417
  • nodejs/nannodejs avatar

    nodejs/nan

    3,351View on GitHub↗

    This project is a compatibility layer and abstraction library for building native C++ addons for Node.js. It provides a consistent C++ API that allows a single codebase to compile against multiple versions of the V8 JavaScript engine by hiding version-specific differences behind macros and inline functions. The toolkit differentiates itself through specialized wrappers and managers, including a monadic wrapper for handles to avoid explicit null checks, a persistent reference manager for objects that must survive handle scope disposal, and a buffer abstraction API for version-compatible memory

    C++nodenodejs
    View on GitHub↗3,351
  • clojure/clojureclojure avatar

    clojure/clojure

    11,006View on GitHub↗

    Clojure is a general-purpose, functional programming language hosted on the Java Virtual Machine. It is a homoiconic S-expression language that represents programs as nested data structures, allowing code to be manipulated and evaluated as data. The project provides a framework for JVM interoperability, enabling the invocation of Java methods and integration with other JVM-based languages. It distinguishes itself through a persistent data structure library that uses bitmapped vector tries to manage immutable collections and a programmatic REPL for interactive software development and real-tim

    Java
    View on GitHub↗11,006
  • dop251/gojadop251 avatar

    dop251/goja

    6,914View on GitHub↗

    Goja is a JavaScript engine and ECMAScript compliant interpreter implemented entirely in Go. It serves as an embedded scripting engine that allows Go applications to execute JavaScript code and integrate a programmable scripting layer without relying on Cgo or external native dependencies. The project functions as a bridge between Go and JavaScript, enabling bidirectional data exchange and function invocation. It allows Go hosts to expose native structs, slices, and maps as JavaScript objects and arrays, while providing mechanisms to export script values and functions back into native Go type

    Go
    View on GitHub↗6,914
Compare all 30 related projects→

Frequently asked questions

What does mozilla/rhino do?

Rhino is a Java-based JavaScript engine that implements an ECMAScript compatibility layer for execution inside a Java virtual machine. It serves as an embedded scripting engine and a scripting bridge, allowing JavaScript code to be integrated and executed within Java applications.

What are the main features of mozilla/rhino?

The main features of mozilla/rhino are: Embedded Scripting Engines, JavaScript Bridges, Host Object Binding, Runtime Code Optimizations, JavaScript Execution Modes, ECMAScript Engine Implementations, Dynamic Logic Loading, Java-Based JavaScript Engines.

Which projects share features with mozilla/rhino?

Projects with overlapping indexed features include: gyoogle/tech-interview-for-developer — This project is a comprehensive technical interview preparation resource and computer science interview guide. It… nodejs/nan — This project is a compatibility layer and abstraction library for building native C++ addons for Node.js. It provides… clojure/clojure — Clojure is a general-purpose, functional programming language hosted on the Java Virtual Machine. It is a homoiconic… dop251/goja — Goja is a JavaScript engine and ECMAScript compliant interpreter implemented entirely in Go. It serves as an embedded… rhaiscript/rhai — Rhai is an embedded scripting engine and dynamically typed language designed for integration into Rust applications.… karatelabs/karate — Karate is a Gherkin API testing framework and JVM test orchestrator designed for API validation, workflow automation,…