@project516/java-web 0.0.0-stage → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. package/LICENSE +661 -0
  2. package/README.md +68 -2
  3. package/dist/boot.pack +0 -0
  4. package/dist/java-web-worker.js +19 -0
  5. package/dist/java-web.js +3 -0
  6. package/dist/jdk/java.base.jar +4 -0
  7. package/dist/jdk/java.compiler.jar +0 -0
  8. package/dist/jdk/java.datatransfer.jar +0 -0
  9. package/dist/jdk/java.desktop.jar +0 -0
  10. package/dist/jdk/java.instrument.jar +0 -0
  11. package/dist/jdk/java.logging.jar +0 -0
  12. package/dist/jdk/java.management.jar +0 -0
  13. package/dist/jdk/java.management.rmi.jar +0 -0
  14. package/dist/jdk/java.naming.jar +0 -0
  15. package/dist/jdk/java.net.http.jar +0 -0
  16. package/dist/jdk/java.prefs.jar +0 -0
  17. package/dist/jdk/java.rmi.jar +0 -0
  18. package/dist/jdk/java.scripting.jar +0 -0
  19. package/dist/jdk/java.se.jar +0 -0
  20. package/dist/jdk/java.security.jgss.jar +0 -0
  21. package/dist/jdk/java.security.sasl.jar +0 -0
  22. package/dist/jdk/java.sql.jar +0 -0
  23. package/dist/jdk/java.sql.rowset.jar +0 -0
  24. package/dist/jdk/java.transaction.xa.jar +0 -0
  25. package/dist/jdk/java.xml.crypto.jar +0 -0
  26. package/dist/jdk/java.xml.jar +0 -0
  27. package/dist/jdk/javac.pack +0 -0
  28. package/dist/jdk/javaweb.tls.jar +0 -0
  29. package/dist/jdk/jdk.compiler.jar +0 -0
  30. package/dist/jdk/jdk.httpserver.jar +0 -0
  31. package/dist/jdk/jdk.internal.md.jar +0 -0
  32. package/dist/jdk/jdk.internal.opt.jar +0 -0
  33. package/dist/jdk/jdk.jartool.jar +0 -0
  34. package/dist/jdk/jdk.localedata.jar +0 -0
  35. package/dist/jdk/jdk.localedata.txt +1559 -0
  36. package/dist/jdk/jdk.security.jgss.jar +0 -0
  37. package/dist/jdk/jdk.unsupported.jar +0 -0
  38. package/dist/jdk/jdk.zipfs.jar +0 -0
  39. package/dist/jdk/legal/java.base/ADDITIONAL_LICENSE_INFO +37 -0
  40. package/dist/jdk/legal/java.base/ASSEMBLY_EXCEPTION +27 -0
  41. package/dist/jdk/legal/java.base/LICENSE +347 -0
  42. package/dist/jdk/legal/java.base/aes.md +36 -0
  43. package/dist/jdk/legal/java.base/c-libutl.md +35 -0
  44. package/dist/jdk/legal/java.base/cldr.md +100 -0
  45. package/dist/jdk/legal/java.base/gcc.md +2084 -0
  46. package/dist/jdk/legal/java.base/icu.md +93 -0
  47. package/dist/jdk/legal/java.base/public_suffix.md +399 -0
  48. package/dist/jdk/legal/java.base/siphash.md +150 -0
  49. package/dist/jdk/legal/java.base/unicode.md +269 -0
  50. package/dist/jdk/legal/java.base/zlib.md +27 -0
  51. package/dist/jdk/legal/java.desktop/colorimaging.md +7 -0
  52. package/dist/jdk/legal/java.desktop/dejavu-fonts.txt +187 -0
  53. package/dist/jdk/legal/java.desktop/freetype.md +649 -0
  54. package/dist/jdk/legal/java.desktop/giflib.md +52 -0
  55. package/dist/jdk/legal/java.desktop/harfbuzz.md +104 -0
  56. package/dist/jdk/legal/java.desktop/jpeg.md +77 -0
  57. package/dist/jdk/legal/java.desktop/lcms.md +104 -0
  58. package/dist/jdk/legal/java.desktop/libpng.md +231 -0
  59. package/dist/jdk/legal/java.desktop/mesa3d.md +134 -0
  60. package/dist/jdk/legal/java.desktop/pipewire.md +46 -0
  61. package/dist/jdk/legal/java.desktop/xwd.md +34 -0
  62. package/dist/jdk/legal/java.xml/bcel.md +219 -0
  63. package/dist/jdk/legal/java.xml/dom.md +77 -0
  64. package/dist/jdk/legal/java.xml/jcup.md +31 -0
  65. package/dist/jdk/legal/java.xml/schema10part1.md +51 -0
  66. package/dist/jdk/legal/java.xml/schema10part2.md +50 -0
  67. package/dist/jdk/legal/java.xml/xalan.md +255 -0
  68. package/dist/jdk/legal/java.xml/xerces.md +229 -0
  69. package/dist/jdk/legal/java.xml/xhtml10.md +57 -0
  70. package/dist/jdk/legal/java.xml/xhtml10schema.md +150 -0
  71. package/dist/jdk/legal/java.xml/xhtml11.md +68 -0
  72. package/dist/jdk/legal/java.xml/xhtml11schema.md +60 -0
  73. package/dist/jdk/legal/java.xml/xmlspec.md +63 -0
  74. package/dist/jdk/legal/java.xml/xmlxsd.md +43 -0
  75. package/dist/jdk/legal/java.xml.crypto/santuario.md +227 -0
  76. package/dist/jdk/legal/jdk.internal.md/commonmark.md +29 -0
  77. package/dist/jdk/legal/jdk.internal.opt/jopt-simple.md +27 -0
  78. package/dist/jdk/legal/jdk.localedata/thaidict.md +31 -0
  79. package/dist/node.d.ts +49 -0
  80. package/dist/node.js +18994 -0
  81. package/package.json +58 -4
package/README.md CHANGED
@@ -1,3 +1,69 @@
1
- # Temporary Holding Version
1
+ # java-web
2
2
 
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.
3
+ A JVM written in TypeScript that runs Java 25 class files and JARs in the
4
+ browser and under Node. It runs the real OpenJDK 25 class library unmodified,
5
+ and its page API matches CheerpJ's, so existing pages can switch.
6
+
7
+ ## Use it in a page
8
+
9
+ ```sh
10
+ pnpm add @project516/java-web
11
+ ```
12
+
13
+ Serve `node_modules/@project516/java-web/dist/` as static files, then:
14
+
15
+ ```html
16
+ <script src="java-web.js"></script>
17
+ <pre id="console"></pre>
18
+ <script type="module">
19
+ await cheerpjInit();
20
+ await cheerpjRunJar("/app/my-app.jar"); // /app/ is the web server root
21
+ </script>
22
+ ```
23
+
24
+ `cheerpjRunMain`, `cheerpjRunLibrary` (call Java from JS), JS natives and
25
+ `/files/` storage work too. See [docs/browser.md](docs/browser.md).
26
+
27
+ ## Use it under Node
28
+
29
+ ```sh
30
+ npx @project516/java-web -cp classes Main # or: npx @project516/java-web -jar app.jar
31
+ ```
32
+
33
+ ```js
34
+ import { runNode } from "@project516/java-web";
35
+ const code = await runNode({ classpath: ["classes"], mainClass: "Main" });
36
+ ```
37
+
38
+ See [docs/node.md](docs/node.md).
39
+
40
+ ## What runs
41
+
42
+ - Console apps, libraries and javac: every Java SE module, plus `jdk.compiler`,
43
+ `jdk.httpserver` and a few more.
44
+ - The headless parts of `java.desktop`, including `Graphics2D` on a
45
+ `BufferedImage`, with HotSpot's pixels except for text.
46
+ - Sockets: real ones under Node; in the browser, loopback inside the VM and
47
+ `http:`/`https:` through `fetch`.
48
+ - Not yet: AWT and Swing windows, child processes, IPv6.
49
+
50
+ Details: [docs/support.md](docs/support.md).
51
+
52
+ ## Develop
53
+
54
+ You need Node 23.6+, pnpm, curl and bzip2 on Linux or macOS.
55
+
56
+ ```sh
57
+ pnpm install
58
+ pnpm jdk # downloads the pinned JDK 25 and builds the image
59
+ pnpm test # compares programs against HotSpot
60
+ pnpm build # builds dist/
61
+ ```
62
+
63
+ More: [docs/development.md](docs/development.md).
64
+
65
+ ## License
66
+
67
+ AGPL-3.0-only. The OpenJDK class library is GPL-2.0 with the Classpath
68
+ Exception, and the bundled DejaVu Sans font has its own license; both notices
69
+ ship in `dist/jdk/legal/`.
package/dist/boot.pack ADDED
Binary file