2,341 karma · joined October 4, 2013
BrowserPod is intended to work across all browsers, but we are not there yet.
Lead dev of CheerpJ and CTO of Leaning Technologies here. Happy to answer any question from the community.
And, in full transparency, we don't engage in any manipulation of upvote count.
We try to play as fair as possible here and in other communities.
CheerpJ provide "Library mode": an API to natively interact with Java objects from JavaScript: https://cheerpj.com/docs/guides/library-mode
CheerpJ also support Java 17 (currently in preview) and LTS parity is scheduled for next year.
What is the problem here?
For more general cases our Tailscale integration is required. For more information see: https://cheerpj.com/docs/guides/Networking
CheerpJ is effectively just a very sophisticated JavaScript/WebAssembly library and it plays by the rules of the browser sandbox.
The Java side of things works out-of-the-box, but LWJGL3 JNI code uses some subtle techniques that are yet supported in public builds of CheerpJ.
Now that we have Java 17 support we expect to be able to move even further.
This is fundamentally an implementation detail though, when we adopt WasmGC there will be no user visible change beside a potential performance improvement
This specific example would make much more sense if it could run sandboxed client-side.
https://labs.leaningtech.com/blog/cheerpj-4.0
And yes, it can run Minecraft :-)
There is no server-side computation. CheerpJ runs code exclusively client-side.
Byte ranges request do most of the heavy lifting, data is loading exclusively on-demand.
> Doesn't the JVM run everywhere in 2025?
What about iOS? Android has Java, but can't run desktop Java apps. Chromebooks also have limits.
There are many reasons why shipping via the browser is a better choice compared to shipping desktop apps. The main 3 in my opinion are:
1. Distribution: Give your user a link and the app will start 2. Isolation: The user can have confidence the app won't read his personal files. 3. Cross-platform: Every OS and every device, for real this time
They will allow self-hosting and will be priced on a per application / per website basis. They will be priced to be affordable and ensure that CheerpJ enjoys a wide reach.
If you are interested before the release, please do get in touch (info@leaningtech.com).
The issue here is that there is very little Java in JavaFX, it's mostly native C++ code. This makes it actually quite similar to the LWJGL library used by Minecraft.
Our plan is to use for JavaFX the same technology we have developed for LWJGL.
CheerpJ is a WebAssembly-based JVM that can run unmodified Java 8 and Java 11 applications. Java 17 will be supported later in year.
I am the lead developer of CheerpJ and CTO of Leaning Technologies. AMA.
You are probably thinking about our independent x86 virtualization product CheerpX (https://cheerpx.io)
The trickiest issue is input, since the "look around with your mouse" interaction maps very poorly on a mobile platform where "mousemove" implies touching / clicking.
We plan to eventually figure out a mobile-optimize UX, but we will most likely prioritize improving the performance first.
Link to our blog, we try to regularly publish high quality content: https://labs.leaningtech.com/blog
To contribute anything to Chromium or V8 you need to sign a CLA, afterwards there are very little rights you retain.