Skip to content

Jelly-JVM

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

Jelly-JVM provides a full stack of utilities for fast and scalable RDF streaming with the Jelly protocol. Oh, and it's blazing-fast, too!

Getting started with plugins – no code required

See the getting started guide with plugins for a quick way to use Jelly with your Apache Jena or RDF4J application without writing any code.

Getting started for application developers

If you want to use the full feature set of Jelly-JVM in your code, see the getting started guide for application developers.

This documentation is for the latest development version of Jelly-JVM – it is not considered stable. If you are looking for the documentation of a stable release, use the version selector on the left of the top navigation bar. See: latest stable version.

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).

    • Browse jelly-core versions Browse latest jelly-core API docs
  • jelly-jena – conversions and interop code for the Apache Jena library.

    • Browse jelly-jena versions Browse latest jelly-jena API docs
  • jelly-rdf4j – conversions and interop code for the RDF4J library.

    • Browse jelly-rdf4j versions Browse latest jelly-rdf4j API docs
  • 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).

    • Browse jelly-stream versions Browse latest jelly-stream API docs
  • jelly-grpc – implementation of a gRPC client and server for the Jelly gRPC streaming protocol.

    • Browse jelly-grpc versions Browse latest jelly-grpc API docs

Plugin JARs

We also publish plugin JARs which allow you to use Jelly-JVM with Apache Jena and RDF4J just by dropping the JARs into the classpath. Find out more about using the plugins.

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-JVM Scala Java RDF4J Apache Jena Apache Pekko
2.0.x 3.3.x (LTS) 17+ 5.x.x 5.x.x 1.1.x
1.0.x 3.3.x (LTS)
2.13.x1
11+ 4.x.x 4.x.x 1.0.x

See the compatibility policy for more details and the release notes on GitHub.

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.


  1. Scala 2.13-compatible builds of Jelly-JVM are available as well. See more details