figshare-rs
Async Rust client for core Figshare workflows.
It provides a typed API built around FigshareClient for public article reads, exact DOI lookup, latest-version resolution, private article updates, hosted uploads, publication, and public or private file downloads, with typed models, metadata and query builders, and higher-level workflow helpers. Use FigshareClient::anonymous for public reads and FIGSHARE_TOKEN for authenticated account workflows.
The shared cross-client traits from client-uploader-traits are re-exported as figshare_rs::client_uploader_traits. Import figshare_rs::client_uploader_traits::prelude::* when you want to write generic code against the aligned client-rs trait surface.
[!WARNING] For regular free
figshare.comaccounts, Figshare currently offers a20GBtotal storage quota and a20GBmaximum individual file size, not20GBper document: https://help.figshare.com/article/figshare-account-limits https://info.figshare.com/user-guide/file-size-limits-and-storage/I created this crate thinking that the
20GBlimit was per document rather than total account storage. If you are looking for a general-purpose personal archival workflow, I suggest using zenodo-rs instead.This crate still exists because Figshare is used by institutions and publishers, and the API client can still be useful in those environments.
Examples
use ;
let client = builder
.endpoint
.build?;
let query = builder
.item_type
.order
.order_direction
.limit
.build;
assert_eq!;
assert_eq!;
assert_eq!;
assert_eq!;
# Ok::
Build publication inputs locally:
use ;
let metadata = builder
.title
.defined_type
.description
.author_named
.tag
.build?;
let upload = from_reader;
assert_eq!;
assert_eq!;
assert_eq!;
match upload.source
# Ok::