A JVM written in TypeScript that runs Java applications directly in web browsers without plugins.
Doppio is a Java Virtual Machine (JVM) implemented in TypeScript that allows Java applications to run directly in web browsers without requiring plugins. It solves the problem of browser language barriers by providing a full JVM and POSIX-compatible runtime system entirely in JavaScript/TypeScript. This enables Java code execution in sandboxed web environments where traditional Java plugins are unavailable or deprecated.
Java developers and researchers interested in running Java applications in web browsers, educators creating browser-based Java demos, and web developers exploring alternative runtime systems for the browser.
Developers choose Doppio because it provides a unique, plugin-free way to execute Java in browsers, backed by academic research from UMass Amherst. It offers both browser integration and CLI usage, making it versatile for demos, education, and experimental web applications.
Breaks the browser language barrier (includes a plugin-free JVM).
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Executes Java bytecode entirely in the browser using TypeScript, eliminating the need for deprecated Java plugins as stated in the GitHub description.
Provides a Unix-like environment for Java apps in the browser, enabling POSIX system calls and sandboxed execution per the project philosophy.
Supports both browser integration and command-line usage via Node.js, offering flexibility for demos and CLI tools as shown in the README examples.
Backed by research from UMass Amherst with a paper published at PLDI 2014, ensuring a rigorous and innovative approach to browser-based VMs.
Includes an interactive demo page and comprehensive documentation, making it easy to test and integrate for educational or experimental purposes.
Labeled as version v0.5.0 and an active research project, indicating it's not production-ready and may have bugs or incomplete features.
Requires Node v6.0+, Grunt-cli globally installed, Java 8 JDK, and on Windows, additional tools like Git and Python, making initial configuration cumbersome as per the README.
Running a JVM in JavaScript introduces significant performance penalties, leading to slower execution compared to native Java environments, which limits real-world use.
May not implement all Java SE libraries or advanced features, restricting the types of applications that can be run, as hinted by its academic focus.