cyberdrop-client
Rust API client for Cyberdrop, with async support and typed models.
Features
- Async client built on
reqwest(rustls TLS, no native OpenSSL requirement). - Token-based authentication helpers (
login,with_auth_token,verify_token). - Typed models for common endpoints (albums, files, uploads).
- Upload support via multipart, including chunked uploads for large files.
- Configurable base URL, user-agent, and request timeout via
CyberdropClientBuilder.
Usage as Library
Add the crate:
[]
= "0.1"
Quickstart:
use CyberdropClient;
use Path;
async
Public API
- Client:
CyberdropClient,CyberdropClientBuilder - Errors:
CyberdropError - Models:
AuthToken,TokenVerification,Permissions,AlbumsList,Album,AlbumFilesPage,AlbumFile,UploadedFile,EditAlbumResult
Common entrypoints on CyberdropClient:
- Auth:
register,login,verify_token,with_auth_token - Albums:
list_albums,create_album,edit_album,request_new_album_link - Album files:
list_album_files - Uploads:
upload_file - Low-level:
get(returns rawreqwest::Responseand does not treat non-2xx as errors)
Running the CLI Examples
Examples live in examples/ and can take args or environment variables.
Environment variables used by most examples:
CYBERDROP_USERNAMECYBERDROP_PASSWORD
Run:
Contributing
PRs are welcome!
Please run cargo fmt and cargo clippy before submitting.
If you’re changing behavior (e.g. stricter parsing), document it in the PR.
Support
If this crate saves you time or helps your work, support is appreciated:
License
This project is licensed under the MIT License; see the license file for details.