Crate nanopub

Crate nanopub 

Source
Expand description

§⚔️ 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.

Re-exports§

pub use error::NpError;
pub use nanopub::create_base_dataset;
pub use nanopub::Nanopub;
pub use profile::NpProfile;
pub use profile::ProfileBuilder;
pub use utils::get_np_server;

Modules§

constants
error
extract
nanopub
network
profile
sign
utils