# Java SDK

## Inrupt Java Client Libraries

Inrupt provides various Java client libraries to help developers create Solid applications.

### JDK Version

The Java client libraries requires JDK 11+.

### GitHub

* [inrupt/solid-client-java](https://github.com/inrupt/solid-client-java)
* [inrupt/rdf-wrapping-java](https://github.com/inrupt/rdf-wrapping-java)

## Library Modules

Inrupt’s Java Client Libraries are composed of different modules.

### Solid Client and Data Modules

<table><thead><tr><th width="187.921875">Module</th><th>Description</th></tr></thead><tbody><tr><td><a href="https://api.docs.inrupt.com/docs/developer-tools/api/java/inrupt-client/latest/com/inrupt/client/solid/package-summary.html">solid-client-solid</a></td><td><p>Provides support for Solid clients and Solid resources, such as:</p><ul><li><a href="https://api.docs.inrupt.com/docs/developer-tools/api/java/inrupt-client/latest/com/inrupt/client/solid/SolidClient.html">SolidClient</a></li><li><a href="https://api.docs.inrupt.com/docs/developer-tools/api/java/inrupt-client/latest/com/inrupt/client/solid/SolidSyncClient.html">SolidSyncClient</a></li><li><a href="https://api.docs.inrupt.com/docs/developer-tools/api/java/inrupt-client/latest/com/inrupt/client/solid/SolidRDFSource.html">SolidRDFSource</a></li></ul></td></tr><tr><td><a href="https://api.docs.inrupt.com/docs/developer-tools/api/java/inrupt-client/latest/com/inrupt/client/webid/package-summary.html">solid-client-webid</a></td><td>Provides support for WebID Profiles.</td></tr></tbody></table>

### Solid Authentication and Authorization Modules

<table><thead><tr><th width="238.85546875">Module</th><th>Description</th></tr></thead><tbody><tr><td><a href="https://api.docs.inrupt.com/docs/developer-tools/api/java/inrupt-client/latest/com/inrupt/client/openid/package-summary.html">solid-client-openid</a></td><td><p>Provides support for OpenID, such as:</p><ul><li><a href="https://api.docs.inrupt.com/docs/developer-tools/api/java/inrupt-client/latest/com/inrupt/client/openid/OpenIdSession.html">OpenIdSession</a></li></ul></td></tr><tr><td><a href="https://api.docs.inrupt.com/docs/developer-tools/api/java/inrupt-client/latest/com/inrupt/client/accessgrant/package-summary.html">solid-client-access-grant</a></td><td><p>Provides support for Access Grants, such as:</p><ul><li><a href="https://api.docs.inrupt.com/docs/developer-tools/api/java/inrupt-client/latest/com/inrupt/client/accessgrant/AccessGrantSession.html">AccessGrantSession</a></li></ul></td></tr></tbody></table>

### Additional Modules

**Underlying APIs (Publicly Available)**

The following modules provide the underlying APIs that are used by the other modules and are available for general use:

<table><thead><tr><th width="199.5546875">Base APIs</th><th>Description</th></tr></thead><tbody><tr><td><a href="https://api.docs.inrupt.com/docs/developer-tools/api/java/inrupt-client/latest/com/inrupt/client/package-summary.html">solid-client-api</a></td><td>A layer that defines all the central abstractions used by the Java Client Libraries.</td></tr></tbody></table>

<table><thead><tr><th width="199.703125">RDF Processing</th><th>Description</th></tr></thead><tbody><tr><td><a href="https://api.docs.inrupt.com/docs/developer-tools/api/java/inrupt-client/latest/com/inrupt/client/jena/package-summary.html">solid-client-jena</a></td><td>RDF processing that uses the Jena library.</td></tr><tr><td><a href="https://api.docs.inrupt.com/docs/developer-tools/api/java/inrupt-client/latest/com/inrupt/client/rdf4j/package-summary.html">solid-client-rdf4j</a></td><td>RDF processing that uses the RDF4J library.</td></tr></tbody></table>

<table><thead><tr><th width="200.3828125">Vocabulary</th><th>Description</th></tr></thead><tbody><tr><td><a href="https://api.docs.inrupt.com/docs/developer-tools/api/java/inrupt-client/latest/com/inrupt/client/vocabulary/package-summary.html">solid-client-vocabulary</a></td><td>Provides convenience objects for Solid-related identifiers.</td></tr></tbody></table>

**Underlying APIs (Internal Use)**

The following modules provide the underlying APIs that are used by the other modules; i.e., included as part of the other modules’ dependencies list but not intended for general use.

<table><thead><tr><th width="226.296875">Module</th><th>Description</th></tr></thead><tbody><tr><td><strong><code>solid-client-core</code></strong></td><td>Runtime implementations of Java Client Library APIs.</td></tr><tr><td><strong><code>solid-client-uma</code></strong></td><td>Provides support for UMA Token Exchange.</td></tr><tr><td><strong><code>solid-client-jackson</code></strong></td><td>JSON processing that uses the Jackson library.</td></tr><tr><td><strong><code>solid-client-jsonb</code></strong></td><td>JSON processing that uses the JSON-B library.</td></tr></tbody></table>

### Bugs and Feature Requests

For public feedback, bug reports, and feature requests, please file an issue via GitHub.

* [**`solid-client-java`**](https://github.com/inrupt/solid-client-java/issues)
* [**`rdf-wrapping-java`**](https://github.com/inrupt/rdf-wrapping-java/issues)
