4 releases
0.6.3 | Feb 9, 2020 |
---|---|
0.6.2 | Feb 8, 2020 |
0.6.1 | Feb 8, 2020 |
0.6.0 | Feb 8, 2020 |
#3 in #furry
565KB
1.5K
SLoC
rs621
Rust bindings for the e621.net API.
E621 is a large online archive of furry (anthropomorphic) art. rs621
provides
easy-to-use bindings to its public HTTP API. It uses the reqwest
crate to make
the requests over HTTPS.
Features
- Convenient iterator based API.
- Post listing and searching, using any of the search options from the website.
- Pool listing and searching.
- Unlimited result count (automatically makes more requests in sequence to go beyond the API limit of 320 posts per request).
Usage
First, create a Client
. You have to provide a descriptive User-Agent for your
project. The official API encourages you to include your E621 username so that
you may be contacted if your project causes problems.
let client = Client::new("MyProject/1.0 (by username on e621)")?;
Now it's ready to go! For example you can get post #8595 like this:
let post = client.get_post(8595)?;
assert_eq!(post.id, 8595);
Or you can make a search like on the website, using tags:
println!("A list of cool fluffy posts:");
for post in client.post_search(&["fluffy", "rating:s"][..]).take(20) {
println!("#{}", post?.id);
}
Requirements
rs621
uses the rust-openssl
crate. It has some
requirements:
On Linux:
- OpenSSL 1.0.1, 1.0.2, or 1.1.0 with headers (see rust-openssl).
On Windows and macOS:
- Nothing.
See reqwest on crates.io for more details.
License
rs621
is licensed under the terms of both the MIT license and the Apache
License (Version 2.0), at your choice.
See LICENSE-MIT and LICENSE-APACHE-2.0 files for the full texts.
Dependencies
~5–10MB
~180K SLoC