Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Mad Science npm Packages
  3. doppio

doppio

MITTypeScriptv0.5.0

A JVM written in TypeScript that runs Java applications directly in web browsers without plugins.

Visit WebsiteGitHubGitHub
2.2k stars177 forks0 contributors

What is doppio?

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.

Target Audience

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.

Value Proposition

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.

Overview

Breaks the browser language barrier (includes a plugin-free JVM).

Use Cases

Best For

  • Running Java applications directly in web browsers without plugins
  • Educational demos of Java execution in browser environments
  • Research projects exploring browser-based virtual machines
  • Sandboxed Java execution for web-based tools
  • Integrating legacy Java code into modern web applications
  • Command-line Java execution via Node.js

Not Ideal For

  • Production applications requiring high-performance and stable JVM execution
  • Projects that need full compatibility with Java SE 8 or later features and libraries
  • Teams without experience in Node.js, TypeScript, or complex build systems
  • Real-time or graphics-intensive Java applications in the browser

Pros & Cons

Pros

Plugin-Free Browser JVM

Executes Java bytecode entirely in the browser using TypeScript, eliminating the need for deprecated Java plugins as stated in the GitHub description.

POSIX Runtime Compatibility

Provides a Unix-like environment for Java apps in the browser, enabling POSIX system calls and sandboxed execution per the project philosophy.

Dual Execution Modes

Supports both browser integration and command-line usage via Node.js, offering flexibility for demos and CLI tools as shown in the README examples.

Academic Research Foundation

Backed by research from UMass Amherst with a paper published at PLDI 2014, ensuring a rigorous and innovative approach to browser-based VMs.

Live Demo and Documentation

Includes an interactive demo page and comprehensive documentation, making it easy to test and integrate for educational or experimental purposes.

Cons

Experimental and Unstable

Labeled as version v0.5.0 and an active research project, indicating it's not production-ready and may have bugs or incomplete features.

Complex Setup Requirements

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.

Performance Overhead

Running a JVM in JavaScript introduces significant performance penalties, leading to slower execution compared to native Java environments, which limits real-world use.

Limited Java Ecosystem Support

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.

Frequently Asked Questions

Quick Stats

Stars2,182
Forks177
Contributors0
Open Issues47
Last commit3 years ago
CreatedSince 2012

Tags

#javascript-vm#typescript#java-virtual-machine#academic-research#browser-runtime#web-application

Built With

y
yarn
G
Grunt
T
TypeScript
N
Node.js

Links & Resources

Website

Included in

Mad Science npm Packages1.2k
Auto-fetched 9 hours ago

Related Projects

jsemujsemu

A list of emulators written in the JavaScript programming language

Stars1,851
Forks173
Last commit1 month ago
jslinuxjslinux

x86 emulator for running Linux, written in JavaScript

Stars0
Forks0
Last commit
jvmjvm

java virtual machine in pure node.js

Stars0
Forks0
Last commit
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub