Simple and asynchronous Reddit API wrapper for Rust. https://crates.io/crates/roux
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Justin Duch 6eff6e5002 fix tests 2 months ago
.circleci edit circle config 2 years ago
src fix tests 2 months ago
tests ignore that 8 months ago
.gitignore initial commit 2 years ago
Cargo.lock fix tests 2 months ago
Cargo.toml fix tests 2 months ago
LICENSE update LICENSE 8 months ago
README.md Change links to point to the latest version. 2 months ago

README.md

Roux

CircleCI Documentation Crate GitHub

Roux is a simple, asynchronous Reddit API wrapper implemented in Rust.

Usage

Using OAuth

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

use roux::Reddit;
let client = Reddit::new("USER_AGENT", "CLIENT_ID", "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 is platform:program:version (by /u/yourname), e.g. macos:roux:v0.3.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

use roux::Reddit;
let client = Reddit::new("USER_AGENT", "CLIENT_ID", "CLIENT_SECRET")
    .username("USERNAME")
    .password("PASSWORD")
    .login()
    .await;

let me = client.unwrap();
me.submit_text("TEXT_TITLE", "TEXT_BODY", "SUBREDDIT");

Submit A Link Post

use roux::Reddit;
let client = Reddit::new("USER_AGENT", "CLIENT_ID", "CLIENT_SECRET")
    .username("USERNAME")
    .password("PASSWORD")
    .login()
    .await;

let me = client.unwrap();
me.submit_link("LINK_TITLE", "LINK", "SUBREDDIT");

Read-Only Modules

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

Features

  • (Default) tokio_new - use tokio 1.1.0 based reqwest.
  • tokio_back_compat - use tokio 0.2 based reqwest.

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).