Rust client library for the Discourse API.
Features
- Fetch latest topics
- Get categories
- Get topic details with posts
- Get individual posts
- Filter topics by category
- Async/await support with tokio
- Optional authentication with API keys
Installation
[dependencies] discourse-api = "0.20251116"
Usage
Basic (unauthenticated)
use discourse_api::DiscourseClient; #[tokio::main] async fn main() -> Result<(), Box<dyn std::error::Error>> { let client = DiscourseClient::new("https://meta.discourse.org"); let topics = client.get_latest().await?; for topic in topics.topics { println!("{}", topic.title); } Ok(()) }
With API Authentication
let client = DiscourseClient::with_api_key( "https://your-forum.com", "your-api-key", "your-username" ); let topics = client.get_latest().await?;
Examples
Run the example:
cargo run --example fetch_latest
API Endpoints
get_latest()- Get latest topicsget_categories()- Get all categoriesget_topic(id)- Get topic with postsget_post(id)- Get individual postget_category_topics(category_id)- Get topics in category
License
MIT