OCamlPro / swhid

swhid is an OCaml library to work with persistent identifiers found in Software Heritage, also known as swhid

Home Page:https://ocamlpro.github.io/swhid/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

swhid Actions Status coverage percentage

swhid is an OCaml library to work with persistent identifiers found in Software Heritage, also known as swhid. It provides:

  • a parser and a printer for swhid (Swhid_core.Object module)
  • functions to compute a swhid for a given object of any kind : content, directory, revision, release or snapshot (Swhid.Compute)
  • functions to query the swh API in order to get an URL from which you can download a given object (Swhid.Download)

Installation

swhid can be installed with opam:

opam install swhid

If you don't have opam, you can install it following the how to install opam guide.

If you can't or don't want to use opam, consult the opam file for build instructions.

Quickstart

let id = "swh:1:rev:db21f0afdb54c16b265754ca599869fda0ca4bfc"

let url =
  match Swhid_core.Object.of_string id with
  | Error e -> Error e
  | Ok id -> Swhid.Download.revision id

let () =
  match url with
  | Error e -> Format.eprintf "can't get download URL: `%s`@." e
  | Ok url ->
    Format.printf "you can download the revision at the URL: `%s`@." url

For more, have a look at the example folder, at the documentation or at the test suite.

About

About

swhid is an OCaml library to work with persistent identifiers found in Software Heritage, also known as swhid

https://ocamlpro.github.io/swhid/

License:ISC License


Languages

Language:OCaml 100.0%