| Crates.io | doi |
| lib.rs | doi |
| version | 0.3.0 |
| created_at | 2024-08-24 09:01:54.590979+00 |
| updated_at | 2024-09-03 03:58:09.728503+00 |
| description | Digital Object Identifier (DOI) resolver |
| homepage | |
| repository | https://github.com/Teddy-van-Jerry/doi-rs |
| max_upload_size | |
| id | 1350118 |
| size | 46,905 |
Digital Object Identifier (DOI) resolver for Rust
This crate provides a simple way to resolve DOIs and retrieve metadata using the DOI APIs.
The following is a basic example of using this library:
use doi::Doi;
let doi = Doi::new("10.1109/TCSII.2024.3366282");
match doi.resolve() {
Ok(resolved) => println!("Resolved Link: {}", resolved),
Err(e) => eprintln!("Error: {}", e),
}
Please refer to the API documentation for more information.
More complicated constructions can be done using the DoiBuilder struct.
This library also provides a way to retrieve metadata for a DOI.
The metadata feature is required to use this functionality (enabled by default).
use doi::Doi;
let doi = Doi::new("10.1109/TCSII.2024.3366282");
match doi.metadata() {
Ok(metadata) => println!("Paper Title: {}", metadata.title.unwrap_or("<unknown>".to_string())),
Err(e) => eprintln!("Error: {}", e),
}
The raw JSON metadata can be retrieved using the metadata_json method,
powered by serde_json.
use doi::Doi;
let doi = Doi::new("10.1109/TCSII.2024.3366282");
match doi.metadata_json() {
Ok(metadata) => println!("Metadata: {}", metadata),
Err(e) => eprintln!("Error: {}", e),
}
This library is designed to use blocking I/O,
depending on the ureq library for HTTP requests.
This project is licensed under the MIT license.