Skip to content

βš”οΈ Introduction

crates.io PyPI npm Tests Build

This project aims to provide a comprehensive cross-platform toolkit to sign, publish, and verify Nanopublications.

Whether you’re a developer looking to integrate nanopub functionalities into your application or a researcher seeking an efficient way to handle nanopublications, nanopub-rs offers a suite of tools tailored to meet your needs.

πŸͺ„ Nanopub management

  • ✍️ Sign & Publish nanopublications RDF using a RSA private key. Support for user profile defined in a profile.yml file.
  • πŸ” Verify: ensure the integrity of nanopubs by checking their validity, whether they are signed or unsigned.
  • πŸ“₯ Fetch nanopubs from the network using their URI.

πŸ“¦οΈ Packaged for multiple interfaces

This library is packaged for easy use across various interfaces and languages:

βš”οΈ Cross-platform support

It runs seamlessly on:

  • 🦊 Web browsers
  • 🐧 Linux
  • 🍎 MacOS
  • πŸͺŸ Windows

🧩 RDF serialization support

The library handles most RDF serializations supporting quads, including TriG, Nquads, and JSON-LD.

πŸ“ Automated metadata creation

When you sign a nanopub some metadata is added, if it has not already been defined in the pubinfo graph:

  • πŸ•“ Automatic timestamp: the dct:created attribute is used to add the date and time of creation.
  • πŸͺͺ Creator identification: if an ORCID is provided in the profile, it’s added using dct:creator. The library also checks for ORCID already set with prov:wasAttributedTo or pav:createdBy.

πŸ‘† Interactive playground

Experience nanopub-rs in action! Visit the playground page to sign Nanopublications, or generate and register a new key pair, directly in your browser using the NPM version of this library.

πŸ’‘ Facing a bug or have suggestions? We welcome your input and feedback! If you encounter any issues or have ideas to enhance this tool, please create an issue on our GitHub repository.