Analysis updated 2026-05-18
Parse and query RDF knowledge graphs in Python using SPARQL without behavior differences between environments
Validate RDF data against SHACL shapes in Rust, Python, or the browser with identical results
Export linked data graphs from RDF to SQLite, DuckDB, or Parquet for analysis pipelines
Use PurRDF as a drop-in rdflib replacement in an existing Python project via the compatibility shim
| blackcat-informatics/purrdf | yethesamartaka-foxy/foxy | 2arons/agent-git | |
|---|---|---|---|
| Stars | 10 | 10 | 11 |
| Language | Rust | Rust | Rust |
| Setup difficulty | moderate | easy | easy |
| Complexity | 5/5 | 2/5 | 3/5 |
| Audience | researcher | general | developer |
Figures from each repo's GitHub metadata at analysis time.
Simple cargo/pip/npm install, deeper use requires understanding RDF graph concepts (triples, quads, SPARQL) which have a steep learning curve.
PurRDF is a library for working with RDF (Resource Description Framework) data, which is a standard format for representing information as connected triples of subject, predicate, and object. It is built in Rust but exposes the same functionality to Python, JavaScript (via WebAssembly), and C. The key design goal is that all four language bindings use the same core engine, so data parsed or processed in Rust produces byte-identical results to the same operation in Python or the browser. RDF tooling has traditionally been fragmented: each programming language has its own implementation with its own subtle differences, meaning a graph transferred between a Rust service, a Python pipeline, and a browser could silently change meaning. PurRDF addresses this by compiling one Rust implementation and wrapping it for each target language rather than maintaining separate codebases. The library covers the full RDF 1.2 processing stack. It can read and write Turtle, TriG, N-Triples, N-Quads, RDF/XML, JSON-LD, and YAML-LD formats. It includes a SPARQL 1.1 and 1.2 query engine with support for property paths, aggregates, and federated queries. It provides SHACL validation (for checking that graph data conforms to a shape schema) and ShEx 2.1 validation. It also implements a graph transport format called GTS, which is an append-only container for storing RDF graphs alongside binary attachments using cryptographic content-addressing. For Python users, PurRDF includes a compatibility shim that makes existing code written for the popular rdflib library work without changes, and adds helpers for exporting graph data to SQLite, DuckDB, and Parquet. For JavaScript users, it implements the standard RDF/JS interface so it drops into existing JavaScript RDF tooling. The Rust library installs with a single cargo command. Python installs via pip. JavaScript via npm. There are no optional feature flags: the authors chose to ship the full feature set everywhere rather than allow consumers to diverge on subsets. The project is MIT or Apache 2.0 licensed.
A Rust-core RDF 1.2 library with Python, WebAssembly, and C bindings that gives all four languages the same SPARQL, SHACL, and codec behavior from one engine.
Mainly Rust. The stack also includes Rust, Python, WebAssembly.
Use freely for any purpose including commercial use, choose either MIT or Apache 2.0 terms.
Setup difficulty is rated moderate, with roughly 30min to a first successful run.
Mainly researcher.
This repo across BitVibe Labs
Verify against the repo before relying on details.