frontpage.
newsnewestaskshowjobs

Open Source @Github

fp.

Open in hackernews

CheerpJ 4.0: WebAssembly JVM for the browser, now with Java 11 and JNI support

https://labs.leaningtech.com/blog/cheerpj-4.0
9•apignotti•1y ago

Comments

palata•1y ago
That's technically pretty cool, but it makes me wonder:

In order to run a Java Desktop app, I need to install a JVM first (or the Desktop app can embed it, I guess that's what IntelliJ does, right?).

Now if I run CheerpJ, it means that I essentially download a JVM when I load the page (every time), and run code in that JVM. But at this point, why not downloading a Desktop app?

It feels like we are going around, shipping simple web pages together with full browsers and calling that "desktop apps" (e.g. ElectronJS), then shipping complete JVMs as web pages and calling that a "web page"... why don't we just ship simple webpages through browsers and complex desktop apps through package managers?

apignotti•1y ago
With CheerpJ you are downloading the subset of the JVM that you need, and actually only once thanks to the standard browser cache.

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

yuri91•1y ago
For reference, when loading https://browsercraft.cheerpj.com for the first time (up to loading a world), my browser downloaded ~32MB.

The second time almost nothing.

jeffreportmill1•1y ago
And here's an entire Java IDE with CheerpJ that downloads less than 15mb:

https://reportmill.com/SnapCode

palata•1y ago
> With CheerpJ you are downloading the subset of the JVM that you need

That's interesting! May I ask how it works? Does that also happen with e.g. IntelliJ?

> Every OS and every device, for real this time

Doesn't the JVM run everywhere in 2025?

apignotti•1y ago
> That's interesting! May I ask how it works? Does that also happen with e.g. IntelliJ?

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.

palata•1y ago
> Byte ranges request do most of the heavy lifting, data is loading exclusively on-demand.

I don't understand what that means. The JVM is supposed to interpret and sometimes compile bytecode, right? How can it be done with only a fraction of the JVM?

Or are you saying that it is constantly communicating with a server that does the work?

apignotti•1y ago
The VM itself is very small, it's the OpenJDK runtime that is quite sizeable. Byte ranges are used to only download the parts of the runtime (in terms of bytecode) that are required.

There is no server-side computation. CheerpJ runs code exclusively client-side.

palata•1y ago
But you said before that you only download a subset of the JVM, right? Or did you mean a subset of the JDK, including the JVM and... I guess other stuff?
apignotti•1y ago
I meant the JVM in an extended sense: the combination of the bytecode parsing, JIT compiler and OpenJDK runtime. You are right, I should have been more precise and refer to only the runtime part, which is by far the most significant.
palata•1y ago
I was not trying to prove you wrong, I'm just genuinely interested :-). I don't see a lot of articles about the JVM these days.

Show HN: XO – Open-Source Ultimate Tic-Tac-Toe Web Game

https://ultimatexo.com/
1•mekky16•1m ago•0 comments

Europe is the fastest warming continent. What is to blame?

https://www.theguardian.com/world/2026/aug/12/europe-worlds-fastest-warming-continent-climate-cri...
1•ndsipa_pomu•4m ago•0 comments

A minimal chatbot template built with Next.js

https://github.com/shadcn-ui/chatbot-template
1•tosh•7m ago•0 comments

Stalled models, missed deadlines, staff burnout led to unravelling of DeepMind

https://fortune.com/2026/08/10/how-stalled-models-missed-deadlines-and-staff-burnout-lead-to-the-...
1•herodoturtle•8m ago•1 comments

Why UN Climate Summits Will Never Stop Fossil Fuel Money

https://comuniq.xyz/post?t=1544
1•01-_-•9m ago•0 comments

Forbidden City Cabbage

https://www.cnn.com/2025/11/10/style/jadeite-cabbage-taiwan-forbidden-city-curio-hnk-intl
1•dude250711•9m ago•0 comments

New AI chip mimics the human brain's capacity for split-second motor control

https://www.livescience.com/technology/electronics/new-ai-chip-mimics-the-human-brains-capacity-f...
1•01-_-•10m ago•0 comments

Everything hackable will get hacked

https://vercel.com/blog/everything-hackable-will-get-hacked
1•tosh•11m ago•0 comments

Show HN: DevSnoop

https://devsnoop.com
1•hboon•15m ago•0 comments

AirLynk – Share Files Anywhere

https://play.google.com/store/apps/details?id=com.airlynk.app&hl=en_US
1•sathishaluvala•17m ago•1 comments

My Terminal Workflow for Note-Taking, Data Engineering and Writing (Linux/macOS)

https://www.ssp.sh/brain/my-terminal-workflow-with-macos-and-linux/
1•zazuke•18m ago•0 comments

Show HN: Boss Says – endless office platformer

https://xmonader.github.io/bosssays/
1•aredirect•20m ago•0 comments

RetroGameForge project – rebuilt NESMaker with SNES development tools

https://www.timeextension.com/news/2026/08/this-new-suite-of-tools-aims-to-make-developing-nes-an...
2•retro_guy•20m ago•0 comments

Three years of writing a browser engine, in 50 posts

https://codemusings.nl/@jaytaph/p/9A6TCthSHwFEZwGbzSumbN
2•jaytaph•22m ago•1 comments

Launch HN: Discovered Materials (YC P26) – AI agents to discover new materials

https://discoveredmaterials.com/research/
9•advaith08•30m ago•1 comments

Using Rust Code from Unity for High Performance

https://oddur.me/posts/native-rust-in-unity/
1•oddurmagnusson•32m ago•2 comments

Framework loses customer data in Metabase zero-day attack

https://www.theregister.com/personal-tech/2026/08/10/framework-loses-customer-data-in-metabase-ze...
1•bananadonkey•33m ago•0 comments

Linux binaries running as ordinary macOS processes

https://github.com/mslxnu/native_abi
1•tsiry•34m ago•0 comments

Who Should Pay for Source Code Availability?

https://kristoff.it/blog/source-code-availability/
1•lftherios•37m ago•0 comments

Gnome Shell Design Dreams

https://blogs.gnome.org/shell-dev/2026/08/11/gnome-shell-design-dreams/
3•JNRowe•41m ago•0 comments

Turkey's AI dilemma, the impact on entry level jobs for game development

https://www.windowscentral.com/gaming/ai-game-development-turkey-junior-roles-xbox-layoffs
3•pjmlp•42m ago•1 comments

ERPNext's Document Follow feature exposed unauthorized data

https://robinroy.xyz/blog/frappe-document-follow-vulnerability/
2•robinroy03•46m ago•1 comments

Show HN: Brave DevTools MCP – Control Brave from Claude, Codex, and Cursor

https://github.com/triuzzi/brave-devtools-mcp
2•triuzzi•48m ago•0 comments

Congressional Letter to Sam Altman demanding HuggingFace incident transparency [pdf]

https://casar.house.gov/sites/evo-subsites/casar.house.gov/files/evo-media-document/oversight-let...
5•reasonableklout•49m ago•0 comments

The global fertility freefall: trends, drivers and uncertainties

https://www.sciencedirect.com/science/article/abs/pii/S147264832600372X
2•barry-cotter•51m ago•1 comments

Mistral to host Z.ai's GLM-5.2

https://mistral.ai/news/regional-inference-open-models-new-compute/
3•true_JhumanJ•53m ago•1 comments

How do you decide that an agent's output is good enough to stop iterating?

1•mathieu_aithos•56m ago•1 comments

JuliaCon live: Simon Peyton Jones keynote

https://www.youtube.com/watch?v=MQeIerDsReA
2•ViralBShah•56m ago•0 comments

Building an AI music tool taught me the model wasn't the hard part

https://www.musegen.ai
2•Xuuu•1h ago•0 comments

Kryptos: Encrypt messages right inside any messenging app

https://github.com/swisslite/Kryptos
1•hamburgererror•1h ago•1 comments