Giter Club home page Giter Club logo

cheerpj-meta's Introduction

CheerpJ

Version Discord server GitHub Issues

CheerpJ is a WebAssembly-based Java Virtual Machine for the browser. It has extensive compatibility with Java 8 and provides a full runtime environment1 for running Java applications, applets, libraries, and Java Web Start / JNLP applications in the browser without plugins.

Documentation
Examples
Issues
Discord server

<script src="https://cjrtnc.leaningtech.com/3.0/cj3loader.js"></script>

Features

With CheerpJ, you can:

  • Run existing Java applications in the browser with no changes
  • Include Java applets in webpages without legacy plugins
  • Migrate Java Web Start / JNLP applications to work on modern systems
  • Use Java libraries in JavaScript/TypeScript seamlessly
  • Interoperate between Java and JavaScript libraries

CheerpJ is based on a full OpenJDK runtime environment. It supports reflection, custom classloaders, networking, file access, clipboard, audio, printing, Swing, and AWT.

Get started

How does CheerpJ work?

CheerpJ is a combination of two components:

  1. An optimising Java-to-JavaScript JIT compiler.
  2. A full Java SE 8 runtime based on OpenJDK.

Both are written in C++ and are compiled to WebAssembly & JavaScript using Cheerp.

Learn more about CheerpJ's architecture

What's unique about CheerpJ?

  1. Extensive support for Java 8, including Swing, reflection and dynamic class loading 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 features. The runtime supports WebAssembly for optimal performance and size.
  4. The JavaScript code generated by the CheerpJ JIT 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. Also, Java modules can be invoked from JavaScript.
  6. CheerpJ supports Java multi-threading. In addition, you can create concurrent applications by using Web Workers.

Licensing

CheerpJ is free for personal use and technical evaluation. See licensing for details.

Demos

Several demos of CheerpJ can be found here.

You can also see CheerpJ in action in JavaFiddle and Browsercraft.

Community

CheerpJ is used in production by teams at NASA, Siemens, UBS, and many others.

We have a vibrant Discord community where you can ask questions, share your projects, and get community support.

Join the Discord server
Follow us on Twitter

Footnotes

  1. CheerpJ has been tested on Oracle Forms, EBS, Swing, AWT, and numerous frameworks and libraries. It should be able to run Java SE applications that you would otherwise need a Java Runtime Environment for. โ†ฉ

cheerpj-meta's People

Contributors

carlopi avatar gabrielareyna avatar sderossi avatar bates64 avatar alexp-sssup avatar marsicplusplus avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.