serenity-rs/serenity

A Rust library for the Discord API.

View on GitHub ↗Jump to charts ↓Open shareable report

Summary Information

Updated 12 minutes ago
Added to GitGenius on September 12th, 2026
Created on November 6th, 2016
Open Issues & Pull Requests: 59 (+0)
GitHub issues: Enabled
Number of forks: 670
Total Stargazers: 5,604 (+0)
Total Subscribers: 25 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 0.7 hours
Mean response time: 31.8 days
90th percentile: 65.3 days
Tracked items: 289

How this project is maintained

Around half of the issues opened in the past year never receive a reply. 75% of open issues come from outside the core team, so the backlog reflects real-world use rather than internal planning. Work labelled "question" is answered fastest, typically in under an hour, while "discord feature" waits about 3 days. Only 7% of issues opened in the past year have been closed. Three people close 93% of everything that gets resolved.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 28
New in 7 days: 1
Closed in 7 days: 0
Avg open age: 484 days
Stale 30+ days: 24
Stale 90+ days: 22

Recent activity

Opened in 7 days: 1
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • question (16)
  • feature-request (14)
  • discord feature (12)
  • model (12)
  • bug (9)
  • good first issue (5)
  • builder (4)
  • wontfix (4)

Most active issues this week

Detailed Description

Serenity is a Rust library for the Discord API.

Serenity solves the problem of building Discord bots and applications in Rust by providing a complete wrapper around Discord's API. The library handles the complexity of the gateway protocol transparently, automatically managing sharded connections without requiring explicit configuration. It includes a built-in cache that is updated automatically as events arrive, and this cache is consulted before making HTTP requests to avoid unnecessary API calls. Developers implement event handlers by defining a trait with methods corresponding to Discord events, and the library dispatches incoming events to these handlers with a context object containing relevant information.

Serenity suits developers building Discord bots in Rust who want low-level control over the API. For those preferring a higher-level command framework, the project recommends poise, which is built on top of serenity. For voice functionality, the project points to songbird as a companion library. The library provides examples demonstrating basic functionality, and the README emphasizes that while the documentation aims to be accurate, Discord's official documentation should be consulted for authoritative information.

The project maintains a stable minimum supported Rust version on its main branch, committing to support that version until the next major release. The next development branch tracks the latest Rust release, allowing the team to adopt new language features and reduce technical debt before those features become the baseline for the stable branch. The library offers granular feature flags allowing developers to customize which components to include, with sensible defaults covering the core functionality of builder, cache, client, gateway, HTTP, and model handling.