Skip to content

Commit 882c999

Browse files
committed
Explain dependencies in README
1 parent 17294ab commit 882c999

File tree

1 file changed

+17
-0
lines changed

1 file changed

+17
-0
lines changed

README.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,23 @@ Parts of this project are incomplete, not fleshed out, and subject to change wit
1414

1515
The primary purpose of this repository is to create an environment for collaboration and joint exploration of the Swift/Java interoperability story. The project will transition to a more structured approach once key goals have been outlined.
1616

17+
## Dependencies
18+
19+
This project consists of different modules which have different Swift and Java runtime requirements.
20+
21+
**JavaKit** – the Swift macros allowing the invocation of Java libraries from Swift
22+
23+
- **JDK 17+**, any recent JDK installation should be sufficient, as only general reflection and JNI APIs are used by this integration
24+
- **Swift 6.0+**, because the library uses modern Swift macros
25+
26+
**jextract-swift** – the source generator that ingests .swiftinterface files and makes them available to be called from generated Java sources
27+
28+
- **Swift 6.x development snapshots**, because of dependence on rich swift interface files
29+
- **JDK 22+** because of dependence on [JEP-454: Foreign Function & Memory API](https://openjdk.org/jeps/454)
30+
- We are validating the implementation using the currently supported non-LTE release, which at present means JDK-23.
31+
32+
The extract tool may become able to generate legacy compatible sources, which would not require JEP-454 and would instead rely on existing JNI facilities. Currently though, efforts are focused on the forward-looking implementation using modern foreign function and memory APIs.
33+
1734
## Development and Testing
1835

1936
This project contains quite a few builds, Swift, Java, and depends on some custom steps.

0 commit comments

Comments
 (0)