Compiles Java bytecode to JavaScript, WebAssembly and C https://teavm.org
  • Java 97.8%
  • C 1%
  • JavaScript 0.7%
  • TypeScript 0.3%
  • HTML 0.2%
Find a file
2026-06-15 19:17:07 +02:00
.claude Add config for coding agents 2026-04-18 15:59:44 +02:00
.github ci: trying to fix macos C workflow 2026-06-12 18:29:48 +02:00
.idea classlib: fix greedy behaviour of InputStreamReader and BufferedReader 2025-01-17 18:55:14 +01:00
.run idea: repair plugin 2025-10-31 17:58:43 +01:00
build-logic Add a gradle task that allows compiling and running C backend tests on remote mac 2026-06-11 23:05:55 +02:00
classlib classlib: fix Collectors.toUnmodifiableList accepting nulls 2026-06-15 19:17:07 +02:00
config/checkstyle Bump checkstyle version to support Java 21 syntax 2023-09-28 13:51:08 +02:00
core c: fix detection of async methods in coroutine transformation 2026-06-12 19:21:26 +02:00
extension Implement new substitution SPI 2026-05-26 23:02:56 +02:00
extras-slf4j Migrate to gradle 2023-01-23 17:16:07 +01:00
gradle Add a gradle task that allows compiling and running C backend tests on remote mac 2026-06-11 23:05:55 +02:00
html4j/src JS: remove lazy creation of primitive classes 2023-10-21 20:07:49 +02:00
interop/core Implement new substitution SPI 2026-05-26 23:02:56 +02:00
jso jso: support record-style @JSProperty accessors (#1195) 2026-06-06 17:09:16 +02:00
metaprogramming Apply Java 11 version to public APIs 2026-05-24 19:44:25 +02:00
platform Get rid of commons-io, don't relocate commons-cli 2026-05-24 20:54:17 +02:00
samples Bump project version 2026-05-31 19:33:44 +02:00
tests classlib: fix Collectors.toUnmodifiableList accepting nulls 2026-06-15 19:17:07 +02:00
tools Add a gradle task that allows compiling and running C backend tests on remote mac 2026-06-11 23:05:55 +02:00
.gitignore Ignore .intellijPlatform directory 2024-12-14 17:50:00 +01:00
AGENTS.md wasm gc: migrate intrinsics to instructions 2026-05-08 22:39:51 +02:00
build.gradle.kts Make root gradle clean task compatible with configuration cache 2026-05-23 22:10:58 +02:00
CLAUDE.md Add workaround for claude not reading AGENTS.md, add clarification about checkstyle 2026-04-18 19:11:36 +02:00
deploy.sh Remove legacy Wasm and WASI backends 2026-03-14 19:01:57 +01:00
gradle.properties Bump project version 2026-05-31 19:33:44 +02:00
gradlew Update Gradle and all required plugins 2025-09-26 19:29:52 +02:00
gradlew.bat Update Gradle and all required plugins 2025-09-26 19:29:52 +02:00
LICENSE Applies apache license 2013-12-20 12:45:28 +04:00
NOTICE Borrow some code from Joda Time to parse tz data and expose offsets. Add 2015-05-13 22:57:00 +03:00
README.md Update Discord link 2025-06-03 22:11:06 +02:00
release.sh Revert accidentally removed release of IDEA and Gradle plugins from release script 2025-05-29 11:53:35 +02:00
settings.gradle.kts Implement new substitution SPI 2026-05-26 23:02:56 +02:00

TeaVM

.github/workflows/ci.yml Maven Central Download Discord

See documentation at the project web site.

Useful links:

Building TeaVM

Simply clone source code (git clone https://github.com/konsoletyper/teavm.git) and run Gradle build (./gradlew publishToMavenLocal or gradlew.bat publishToMavenLocal). You should build samples separately, as described in corresponding readme file.

Useful Gradle tasks

  • :tools:classlib-comparison-gen:build build Java class library compatibility report. result is available at: tools/classlib-comparison-gen/build/jcl-support

Embedding TeaVM

If you are not satisfied with Maven, you can embed TeaVM in your program or even create your own plugin for any build tool, like Ant or Gradle. The starting point for you may be org.teavm.tooling.TeaVMTool class from teavm-tooling artifact. You may want to go deeper and use org.teavm.vm.TeaVM from teavm-core artifact, learn how TeaVMTool initializes it. To learn how to use TeaVMTool class itself, find its usages across project source code. You most likely encounter Maven and IDEA plugins.

Please, notice that these APIs for embedding are still unstable and may change between versions.

License

TeaVM is distributed under Apache License 2.0. TeaVM does not rely on OpenJDK or code or other (L)GPL code. TeaVM has its own reimplementation of Java class library, which is either implemented from scratch or based on non-(L)GPL projects:

If you want to contribute code to implementation of Java class library, please make sure it's not based on OpenJDK or other code licensed under (L)GPL.

Feedback

More information is available at the official site: https://teavm.org.

Ask your questions by email: info@teavm.org. Also, you can report issues on a project's issue tracker.