• Stars
    star
    452
  • Rank 96,761 (Top 2 %)
  • Language
  • Created about 7 years ago
  • Updated 8 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Run Java 8 applications, libraries, applets, Java Web Start, and Oracle Forms on the web without legacy plugins.
title
CheerpJ - Convert Java to WebAssembly and JavaScript

Gitter chat GitHub Issues Live Demos

CheerpJ is a Java bytecode to WebAssembly and JavaScript compiler, compatible with 100% of Java, which allows to compile any Java SE application, library or Java applet into a WebAssembly/JavaScript application.

Main project link: https://leaningtech.com/cheerpj/

Download latest version: Latest version Latest version changelog

Link to latest runtime: https://cjrtnc.leaningtech.com/2.3/loader.js

If you are unsure how to start, try our Tutorial.

What is CheerpJ?

CheerpJ is constituted of three components:

  1. The CheerpJ AOT compiler, an LLVM-based Java-bytecode to JavaScript compiler. This can be used to convert Java archives (e.g. .jar) or single .class files to JavaScript. The CheerpJ AOT compiler is available for Linux, macOS and Windows.
  2. The CheerpJ runtime library, a full Java SE runtime in WebAssembly and JavaScript, that can be distributed in part or in full with applications converted with CheerpJ.
  3. The CheerpJ on-the-fly Java-to-JavaScript compiler, a reduced JavaScript version of the CheerpJ compiler that can be distributed with applications converted with CheerpJ to enable dynamic features of Java such as reflection.

What is unique about CheerpJ?

  1. CheerpJ can convert 100% of Java including reflection and proxy class creation, with no manual intervention on the code.
  2. CheerpJ works directly on Java bytecode, and does not require access to the Java source code.
  3. CheerpJ comes with a full Java SE runtime, inclusive of Swing/AWT. It supports audio, printing, and any other Java SE component. The runtime supports WebAssembly for optimal performance and size.
  4. The JavaScript code generated by CheerpJ is highly optimised and garbage-collectible.
  5. CheerpJ enables bidirectional Java-JavaScript interoperability. JavaScript libraries, as well as the DOM, can be called and manipulated from Java. Converted Java modules can be invoked from JavaScript.
  6. CheerpJ supports Java multi-threading. In addition, it allows to create concurrent applications by using WebWorkers.

Getting Started

You can download CheerpJ for Linux, Windows and macOS on our website (https://leaningtech.com/cheerpj/)

To get started with CheerpJ, please refer to the following pages:

  1. CheerpJ Tutorial
  2. Getting Started
  3. Command Line Options

Demos

Several demos of CheerpJ can be found at https://leaningtech.com/demo/?cheerpjfilter.

Bugs and Questions

We welcome any feedback and bug report on it through our Issue Tracking.

You can also find us on Gitter.

More Repositories

1

webvm

Virtual Machine for the Web
HTML
4,533
star
2

cheerp-meta

Cheerp - a C/C++ compiler for Web applications - compiles to WebAssembly and JavaScript
JavaScript
1,018
star
3

cheerp-compiler

C++ to JavaScript/WebAssembly compiler
C++
292
star
4

cheerp-clang

Legacy repo, migrated to cheerp-compiler monorepo
C++
215
star
5

cheerp-llvm

Legacy repo, migrated to cheerp-compiler monorepo
LLVM
184
star
6

cheerpx-flash

CheerpX for Flash - extend the life of Flash applications thanks to HTML5 virtualization
61
star
7

cheerpj-applet-runner

CheerpJ Applet Runner - Chrome Extension to Enable Java Applets
HTML
57
star
8

browsercraft

Unmodified Minecraft 1.2.5 in the browser using CheerpJ
HTML
50
star
9

cheerpnet

A virtual LAN and socket library for the Web, based on WebRTC
C++
45
star
10

cheerp-libcxx

Legacy repo, migrated to cheerp-compiler monorepo
C++
32
star
11

cheerp-utils

Cheerp headers and utils
C++
32
star
12

cheerp-newlib

A cheerp enabled libc implementation
C
27
star
13

cheerp-libcxxabi

Legacy repo, migrated to cheerp-compiler monorepo
C++
22
star
14

cheerp-bullet

Bullet physics library ported to JavaScript with Cheerp
C++
22
star
15

cheerp-libs

Helper libraries for Cheerp
C++
22
star
16

teeworlds-web

HTML5 of Teeworlds, a multiplayer game. Full serverless and compiled using Cheerp
HTML
21
star
17

javafiddle

Build, run, and share Java snippets in the browser
Svelte
17
star
18

cheerpx_hello

A simple CheerpX hands-on tutorial
HTML
10
star
19

cheerp-musl

A Cheerp-enabled libc implementation
C
9
star
20

cheerpj-natives

JS implementations of JNI libraries for CheerpJ
JavaScript
9
star
21

esreduce

Mimimize EcmaScript tests by manipulating the AST and checking the result
JavaScript
7
star
22

ts2cpp

A tool to generate C++ headers from TypeScript declaration files
TypeScript
7
star
23

leaningtech.github.io

Migrated to labs.leaningtech.com
HTML
4
star
24

labs

Leaning Technologies developer site
MDX
4
star
25

chrome-profiling

Collection of helpful assets for linux perf
Python
3
star
26

macos-utils

Small utilities to forge MacOS file formats, useful to create DMG files on Linux
C++
2
star
27

cheerpj-jnlp-runner

Run Java Web Start Applications without Java
2
star
28

cheerpj-example-applet

Run a Java applet in the browser using CheerpJ
HTML
1
star
29

cheerpj-example-swingset3

SwingSet3 in the browser using CheerpJ
HTML
1
star
30

cheerpx-meta

Run X86 binary applications and libraries in the browser
1
star
31

cheerpx-games-runner

An open-source Chrome Extension to run your games directly in the browser
JavaScript
1
star