Async Mastodon client library
A type-safe, async wrapper around the client API for Mastodon
Installation
To add mastodon-async to your project, add the following to the
[dependencies] section of your Cargo.toml
= "1.0"
Alternatively, run the following command:
$ cargo add mastodon-async
A Note on Debugging
This library offers structured logging. To get better information about bugs or how something is working, I recommend adding the femme crate as a dependency, then adding this line to the beginning of your main() function:
with_level;
When compiling for the debug target, this offers a mostly-human-readable output with a lot of details about what's happening. When targeting release, JSON- structured metadata is offered, which can be filtered and manipulated with scripts or at the shell with jq.
There are other crates which make use of the log crate's new (unstable) kv features, this is just the one that works for me for now.
Example
In your Cargo.toml, make sure you enable the toml feature:
[]
= "1.0"
= ["toml", "mt"]
The "mt" feature is for tokio multi-threaded. For single threaded, drop the
"mt" feature and replace #[tokio::main] with
#[tokio::main(flavor = "current_thread")].
// src/main.rs
use *;
use toml; // requires `features = ["toml"]`
use ;
// requires `features = ["mt"]
async
async
It also supports the Streaming API:
Note: this example compiles, but will not run. See the log_events example for a more thorough example which does compile and run.
use ;
use TryStreamExt;
async