Roux

Build Documentation Crate GitHub

Roux is a simple, (a)synchronous Reddit API wrapper implemented in Rust.

Usage

Using OAuth

To create an OAuth client with the Reddit API, use the Reddit class.

```rust use roux::Reddit; let client = Reddit::new("USERAGENT", "CLIENTID", "CLIENT_SECRET") .username("USERNAME") .password("PASSWORD") .login() .await;

let me = client.unwrap(); `` It is important that you pick a good user agent. The ideal format isplatform:program:version (by /u/yourname), e.g.macos:roux:v2.0.0 (by /u/beanpup_py)`. This will authticate you as the user given in the username function.

Usage

Using the OAuth client, you can:

Submit A Text Post

```rust use roux::Reddit; let client = Reddit::new("USERAGENT", "CLIENTID", "CLIENT_SECRET") .username("USERNAME") .password("PASSWORD") .login() .await;

let me = client.unwrap(); me.submittext("TEXTTITLE", "TEXT_BODY", "SUBREDDIT").await?; ```

Submit A Link Post

```rust use roux::Reddit; let client = Reddit::new("USERAGENT", "CLIENTID", "CLIENT_SECRET") .username("USERNAME") .password("PASSWORD") .login() .await;

let me = client.unwrap(); me.submitlink("LINKTITLE", "LINK", "SUBREDDIT").await?; ```

Read-Only Modules

There are also read-only modules that don't need authentication:

Blocking Client

You can use a blocking (synchronous) API instead of tokio by enabling the blocking feature.

toml [dependencies] roux = { version = "2", features = ["blocking"] }

```rust use roux::Reddit; let client = Reddit::new("USERAGENT", "CLIENTID", "CLIENT_SECRET") .username("USERNAME") .password("PASSWORD") .login();

let me = client.unwrap(); me.submitlink("LINKTITLE", "LINK", "SUBREDDIT"); ```

3rd-Party Libraries

Contributing

Roux is not in active development but is still being maintained and currently covers the most common and useful endpoints. If you see something missing or encounter a bug, feel free to open an issue or create a pull request.

License

Roux is licensed under the MIT license (see LICENSE file).