Skip to content

Jelly (superfast jellyfish)

Jelly

Jelly is a high-performance binary serialization format and streaming protocol for RDF knowledge graphs. Jelly has implementations for the JVM (works with Apache Jena, RDF4J, and Titanium) and Python (works with rdflib).

How fast is it?

Fast. Jelly was specifically designed to serialize and deserialize streams of RDF data faster than N-Triples or other binary formats, while being more compact than Turtle.

The benchmarks below were performed on streams of RDF graphs or datasets, but Jelly is also good at handling streams of triples or quads ("classic" serialization). The benchmark was performed with Jelly-JVM 2.7.0 with Apache Jena 5.3.0. See: more benchmark results and details about the benchmark setup.

Serialization speed bar plot
Serialization speed of a stream of RDF graphs or RDF datasets, averaged over 13 datasets (RiverBench 2.1.0 profile stream-mixed-rdfstar, task stream-serialization-throughput).
* Partial results for RDF/XML and JSON-LD (some datasets not supported).
More details about the benchmark.
Deserialization speed bar plot
Deserialization (parsing) speed of a stream of RDF graphs or RDF datasets, averaged over 13 datasets (RiverBench 2.1.0 profile stream-mixed-rdfstar, task stream-deserialization-throughput).
* Partial results for RDF/XML and JSON-LD (some datasets not supported).
More details about the benchmark.

What can I use it for?

Common use cases for Jelly include:

  • Client-server communication – connect frontend and backend with less latency, improving user experience.
  • Inter-service communication – efficiently exchange RDF data between microservices in complex backend applications.
  • Database dumps and bulk loads – quickly write and read large RDF datasets, reducing storage space and time needed for database maintenance tasks.
  • Streaming ingest – eliminate ingestion bottlenecks in systems processing large amounts of incoming streaming data.
  • Database replication and change capture – record changes to append-only databases or add/delete operations with transaction support (with Jelly-Patch).

See also concrete examples of Jelly being used, along with example datasets.

Commercial and community support

NeverBlink provides commercial support services for Jelly, including implementing custom features, system integrations, implementations for new frameworks, benchmarking, and more.

Community support is available on the Jelly Discord chat.

See also


The development of the Jelly protocol, its implementations, and supporting tooling was co-funded by the European Union. More details.

European Funds for Smart Economy, Republic of Poland, Co-funded by the European Union