#rdf #linked-data #semantic-web #w3c


A Rust toolkit for RDF and Linked Data - In-memory Graph and Dataset implementations

7 releases

0.8.0-alpha.3 Oct 24, 2023
0.8.0-alpha.2 Sep 15, 2023
0.8.0-alpha.1 May 24, 2023
0.8.0-alpha.0 Feb 10, 2023
0.7.0 Jul 22, 2021

#136 in Algorithms

Download history 226/week @ 2023-08-08 256/week @ 2023-08-15 342/week @ 2023-08-22 282/week @ 2023-08-29 197/week @ 2023-09-05 341/week @ 2023-09-12 171/week @ 2023-09-19 166/week @ 2023-09-26 94/week @ 2023-10-03 188/week @ 2023-10-10 164/week @ 2023-10-17 248/week @ 2023-10-24 358/week @ 2023-10-31 229/week @ 2023-11-07 314/week @ 2023-11-14 463/week @ 2023-11-21

1,420 downloads per month
Used in 9 crates (4 directly)


11K SLoC


A Rust toolkit for RDF and Linked Data.

Actions Status Latest Version Documentation

It comprises the following crates:

  • sophia_api defines a generic API for RDF and linked data, as a set of core traits and types; more precisely, it provides traits for describing
    • terms, triples and quads,
    • graphs and datasets,
    • parsers and serializers
  • sophia_iri provides functions, types and traits for validating and resolving IRIs.
  • sophia_inmem defines in-memory implementations of the Graph and Dataset traits from sophia_api.
  • sophia_term defines various implementations of the Term trait from sophia_api.
  • sophia_turtle provides parsers and serializers for the Turtle-family of concrete syntaxes.
  • sophia_xml provides parsers and serializers for RDF/XML.
  • sophia_jsonld provides preliminary support for JSON-LD.
  • sophia_c14n implements RDF canonicalization.
  • sophia_resource provides a resource-centric API.
  • sophia_rio is a lower-level crate, used by the ones above.

and finally:

  • sophia is the “all-inclusive” crate, re-exporting symbols from all the crates above. (actually, sophia_xml is only available if the xml feature is enabled)


CECILL-B (compatible with BSD)


The test suite depends on the [the JSON-LD test-suite which is included as a git submodule. In order to run all the tests, you need to execute the following commands:

$ git submodule init
$ git submodule update


When using Sophia, please use the following citation:

Champin, P.-A. (2020) ‘Sophia: A Linked Data and Semantic Web toolkit for Rust’, in Wilde, E. and Amundsen, M. (eds). The Web Conference 2020: Developers Track, Taipei, TW. Available at: https://www2020devtrack.github.io/site/schedule.


        title = {{Sophia: A Linked Data and Semantic Web toolkit for Rust},
        author = {Champin, Pierre-Antoine},
        howpublished = {{The Web Conference 2020: Developers Track}},
        address = {Taipei, TW},
        editor = {Wilde, Erik and Amundsen, Mike},
        month = apr,
        year = {2020},
        language = {en},
        url = {https://www2020devtrack.github.io/site/schedule}

Third-party crates

The following third-party crates are using or extending Sophia

  • hdt provides an implementation of Sophia's traits based on the HDT format.


An outdated comparison of Sophia with other RDF libraries is still available here.


~79K SLoC