2 unstable releases

0.2.0 Jan 9, 2024
0.1.0 Jan 7, 2024

#2 in #furry

BSD-2-Clause OR Apache-2.0

41KB
747 lines

fluffyf

fluffyf is pretty much a rust library and application implementing API requests to E621/E926 with the primary focus of downloading posts and pools.

Before anything, please read E926's API documentation, it helps, trust me.

If you're new to asynchronous programming in Rust (like me), you should read the async book, and maybe even tokio's tutorial.

Current State

fluffyf is currently

  • barely usable
  • missing a lot of features
  • still lackluster in proper async implementation
  • severely underdocumented

fluffyget is currently

  • lacking pool fetching
  • can't handle file based input
  • etc

fluffypost is currently unusable and not ready yet

Installation

The entire fluffyf project consists of two parts: library and binary.

Library

Add the following to your Cargo.toml:

[dependencies]
fluffyf = "0.1"

Binary

Run the following on your favorite shell:

$ cargo install fluffyf

and assuming that you have added $HOME/.cargo/bin to PATH:

$ fluffyget --help

should output a help message.

Features

Features can be enabled through Cargo.toml, either by:

[dependencies]
fluffyf = { version = "0.1", features = ["rate-limit"] }

or:

[dependencies]

[dependencies.fluffyf]
default-features = false
features = ["rate-limit"]
version = "0.1"

Versioning

Regarding versioning and breaking changes.

SemVer

This project uses Semantic Versioning 2.0.0. However, as of January 2024, this project has not reached version 1.0.0 yet.
As such, expect extreme amounts of breaking changes per minor version changes

MSRV

Due to the nature of async programming in Rust, fluffyf is almost forced to use a very high (or "cutting-edge") minimum supported Rust version.

Note: after 1.0.0, MSRV changes will only happen every major version change.

Changelogging

This project follows keep a changelog version 1.1.0.

License

This project is under a dual license of:

  • BSD 2-Clause License
  • Apache License, Version 2.0

at Your (as per Apache 2.0 License) option.

Unless explicitly stated otherwise, any Contribution made by any Contributor to the Work shall be implicitly dual licensed as stated above.

Some Attribution

@nasso, @playfulkittykat for rate_limit in rs621

This Project is Under Construction 🚧

Create an issue, pull request (if you know how to implement the feature) or contact me directly if you have a suggestion.

Dependencies

~8–24MB
~290K SLoC