Skip to content

Jelly JVM (Scala) implementation

Jelly JVM is an implementation of the Jelly serialization format and the gRPC streaming protocol for the Java Virtual Machine (JVM), written in Scala 3. The supported RDF libraries are Apache Jena and Eclipse RDF4J.

This collection of libraries aims to provide the full stack of utilities for fast and scalable RDF streaming with the Jelly protocol.

Getting started

See the Getting started guide for a quick introduction to the Jelly JVM implementation.

Library modules

The implementation is split into a few modules that can be used separately:

  • jelly-core – implementation of the Jelly serialization format (using the scalapb library), along with generic utilities for converting the deserialized RDF data to/from the representations of RDF libraries (like Apache Jena or RDF4J).

    • jelly-core Scala version support javadoc
  • jelly-jena – conversions and interop code for the Apache Jena library.

    • jelly-jena Scala version support javadoc
  • jelly-rdf4j – conversions and interop code for the RDF4J library.

    • jelly-rdf4j Scala version support javadoc
  • jelly-stream – utilities for building Reactive Streams of RDF data (based on Pekko Streams). Useful for integrating with gRPC or other streaming protocols (e.g., Kafka, MQTT).

    • jelly-stream Scala version support javadoc
  • jelly-grpc – implementation of a gRPC client and server for the Jelly gRPC streaming protocol.

    • jelly-grpc Scala version support javadoc

Compatibility

The Jelly JVM implementation is compatible with Java 11 and newer. Java 11, 17, and 21 are tested in CI and are guaranteed to work. Jelly is built with Scala 3 LTS releases.

The following table shows the compatibility of the Jelly JVM implementation with other libraries:

Jelly Scala Java RDF4J Apache Jena Apache Pekko
1.0.x 3.3.x (LTS) 11–21 4.x 4.x 1.x

Documentation

Below is a list of all documentation pages about Jelly JVM. You can also browse the Javadoc using the badges in the module list above. The documentation uses examples written in Scala, but the libraries can be used from Java as well.