polyglot-adapter provides runtime and build-time support for executing Python and JavaScript on the JVM through GraalVM Polyglot.
The repository is organized into three layers:
api: shared annotations and contract modelruntime: core executor API, Spring Boot integration, and BOMbuild-tools: contract parsing and Java interface generation
- Build tooling modules: JDK 21+, Maven 3.9+
- Runtime modules: JDK 25+, GraalVM 25.x+, Maven 3.9+
- CI and local quality checks assume the Maven wrapper:
./mvnw
api/polyglot-annotations: public annotations such as@PolyglotClientapi/polyglot-model: contract model, parser SPI, and configuration abstractionsruntime/polyglot-adapter: framework-neutral GraalVM execution layerruntime/polyglot-spring-boot-starter: Spring Boot auto-configuration, client binding, health, and metricsruntime/polyglot-bom: dependency management for runtime consumersbuild-tools/polyglot-codegen: contract parser and Java source generatorbuild-tools/polyglot-codegen-maven-plugin: Maven integration for code generation
Import the runtime BOM:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>io.github.ih0r-d</groupId>
<artifactId>polyglot-bom</artifactId>
<version>${polyglot.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>Add the core adapter:
<dependency>
<groupId>io.github.ih0r-d</groupId>
<artifactId>polyglot-adapter</artifactId>
</dependency>Add the Spring Boot starter if needed:
<dependency>
<groupId>io.github.ih0r-d</groupId>
<artifactId>polyglot-spring-boot-starter</artifactId>
</dependency>Add only the language runtimes you enable:
<dependency>
<groupId>org.graalvm.python</groupId>
<artifactId>python-embedding</artifactId>
</dependency>
<dependency>
<groupId>org.graalvm.python</groupId>
<artifactId>python-launcher</artifactId>
</dependency>
<dependency>
<groupId>org.graalvm.js</groupId>
<artifactId>js</artifactId>
<type>pom</type>
</dependency>The project documentation is maintained in docs/:
docs/index.mddocs/overview.mddocs/architecture.mddocs/compatibility.mddocs/runtime.mddocs/codegen.mddocs/concepts.mddocs/release-process.mddocs/roadmap.md
Run the full build:
./mvnw clean verifyRun the stricter local quality gate:
./mvnw -B -ntp -Pquality verifyThe samples/ directory contains example applications. Those modules are demonstrative only and are not the canonical source of documentation.
- Contribution guide:
CONTRIBUTING.md - Security policy:
SECURITY.md - Changelog:
CHANGELOG.md - Code of conduct:
CODE_OF_CONDUCT.md
Licensed under the Apache License 2.0.