• Stars
    star
    403
  • Rank 103,287 (Top 3 %)
  • Language
  • Created over 6 years ago
  • Updated about 2 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
2,681
star
2

cheerp-meta

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

cheerp-compiler

C++ to JavaScript/WebAssembly compiler
271
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

cheerpj-applet-runner

CheerpJ Applet Runner - Chrome Extension to Enable Java Applets
HTML
54
star
7

cheerpx-flash

CheerpX for Flash - extend the life of Flash applications thanks to HTML5 virtualization
54
star
8

cheerpnet

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

browsercraft

Unmodified Minecraft 1.2.5 in the browser
HTML
35
star
10

cheerp-libcxx

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

cheerp-utils

Cheerp headers and utils
C++
31
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
11
star
18

cheerp-musl

A cheerp enabled libc implementation
C
9
star
19

cheerpx_hello

A simple CheerpX hands-on tutorial
HTML
9
star
20

esreduce

Mimimize EcmaScript tests by manipulating the AST and checking the result
JavaScript
6
star
21

leaningtech.github.io

Migrated to labs.leaningtech.com
HTML
4
star
22

cheerpj-natives

JavaScript
4
star
23

ts2cpp

A tool to generate C++ headers from TypeScript declaration files
TypeScript
4
star
24

macos-utils

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

chrome-profiling

Collection of helpful assets for linux perf
Python
2
star
26

cheerpj-example-applet

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

cheerpj-example-swingset3

SwingSet3 in the browser using CheerpJ
HTML
1
star
28

labs.leaningtech.com

Leaning Technologies Developer website
MDX
1
star