iiif

Crates.ioiiif
lib.rsiiif
version0.1.1
sourcesrc
created_at2020-02-26 09:53:57.78836
updated_at2020-02-28 03:28:00.385565
descriptionA client library for the International Image Interoperability Framework (IIIF)
homepage
repositoryhttps://github.com/mitchellberry/iiif
max_upload_size
id212666
size60,382
Mitchell Berry (mberry)

documentation

README

IIIF

A rust client for the International Image Interoperability Framework.

For now only contains the Image API.

Install

[dependencies]
iiif = "0.1.0"

Usage

A convenience fetch function is provided and will create a new client for each request, it is advised to create a reusable client and pass that to the request function for multiple requests.

Fetch and write to file
let api = Image::new("https://ids.lib.harvard.edu/ids/iiif");
api.identifier("25286607");
let response = api.fetch()
                  .await
                  .unwrap();

// Write to foo.jpg
response.write_to_file("foo.jpg")
        .await
        .expect("Writing file to disk");
Reusable client requests
let client = Client::new();
let base = "https://ids.lib.harvard.edu/ids/iiif";
let mut images: Vec<Bytes> = Vec::new();

// Iterate through some images
let ids = ["25286607", "25286608", "25286609"];
for id in ids {
  let mut api = Image::new(base);
  api.identifier(id);
  let response = api.request(&client)
                    .await
                    .unwrap();
  images.push(response.image);
}
Commit count: 44

cargo fmt