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).
-
Stream any RDF data, fast
Jelly is blazing-fast by design, and can work with streams of triples, graphs, datasets, and more.
-
JVM and Python implementations
Fully-integrated support for Apache Jena, RDF4J, Titanium, and rdflib.
-
End-to-end streaming
Jelly comes with a gRPC protocol and can work with Kafka, MQTT, and others.
-
Open specification
Everything is open-source and well-documented to help you get started.
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.

stream-mixed-rdfstar
, task stream-serialization-throughput
).* Partial results for RDF/XML and JSON-LD (some datasets not supported).
More details about the benchmark.

stream-mixed-rdfstar
, task stream-deserialization-throughput
).* Partial results for RDF/XML and JSON-LD (some datasets not supported).
More details about the benchmark.
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
- User guide
- Performance benchmarks
- Protocol specification
- Contributing to Jelly
- Discord chat
- Code on GitHub:
- Licensing and citation
The development of the Jelly protocol, its implementations, and supporting tooling was co-funded by the European Union. More details.