From 80e922fa262d4927eab235d2f7f5a8ec1b46652b Mon Sep 17 00:00:00 2001 From: Volker Berlin Date: Sat, 26 Jan 2019 19:36:48 +0100 Subject: [PATCH] status update --- README.md | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 289842e..ba92c68 100644 --- a/README.md +++ b/README.md @@ -8,9 +8,13 @@ JWebAssembly JWebAssembly is a Java bytecode to [WebAssembly](http://webassembly.org/) compiler. It uses Java class files as input. That it can compile any language that compile to Java bytecode. As output it generates the binary format (.wasm file) or the text format (.wat file). +The difference to similar projects is that not a complete VM with GC and memory management should be ported. It's more like a 1: 1 conversion. The generated WebAssembly code is similar in size to the original Java class files. + Status of the project ---- +The project is currently not production ready but you can run already some tests. + ### Finished Components * Java byte code parser * test framework @@ -18,7 +22,7 @@ Status of the project * [Gradle Plugin](https://github.com/i-net-software/JWebAssembly-Gradle) ### Partially Finished -* Binary format file writer and Text format file writer (171 of 201 byte code instructions) +* Binary format file writer and Text format file writer (183 of 201 Java byte code instructions) * Support for native methods [#2](https://github.com/i-net-software/JWebAssembly/issues/2) * Exception handling - required the next version of WebAssembly * Multiple threads - required the next version of WebAssembly @@ -48,12 +52,12 @@ To use it also some flags and switches are needed. Required Java Version ---- -JWebAssembly requires Java SE 8 or higher. It is tested with Java SE 8 on [travis-ci.org](https://travis-ci.org/i-net-software/jwebassembly). +The JWebAssembly compiler requires Java SE 8 or higher. It is tested with Java SE 8 on [travis-ci.org](https://travis-ci.org/i-net-software/jwebassembly). ## Usage ### Exporting functions -To export a Java function to make it accessible from JavaScript you need add the annotation de.inetsoftware.jwebassembly.api.annotation.Export. +To export a Java function to make it accessible from JavaScript, you must add the annotation de.inetsoftware.jwebassembly.api.annotation.Export. ```java import de.inetsoftware.jwebassembly.api.annotation.Export; @@ -65,7 +69,7 @@ public static int add( int a, int b ) { ``` ### importing functions -To import a JavaScript function to make it accessible from Java you need add the annotation de.inetsoftware.jwebassembly.api.annotation.Import. +To import a JavaScript function to make it accessible from Java, you must add the annotation de.inetsoftware.jwebassembly.api.annotation.Import. The method can be declared native or can have a Java implementation which will be ignored on compiling. ```java @@ -83,6 +87,8 @@ In version 1 of WebAssembly you can only compile: * static methods * use the data types int, long float and double +This is state of JWebAssembly 0.1. + ### Alternatives * [TeaVM](https://github.com/konsoletyper/teavm)