#discord #rich-presence #ipc

discord-rich-presence

A simple, cross-platform crate for interfacing with Discord’s IPC

12 releases

0.2.3 Sep 17, 2022
0.2.2 Aug 8, 2022
0.2.1 Jul 7, 2022
0.2.0 Mar 8, 2022
0.1.5 May 31, 2021

#445 in Web programming

Download history 246/week @ 2022-06-11 197/week @ 2022-06-18 220/week @ 2022-06-25 144/week @ 2022-07-02 206/week @ 2022-07-09 168/week @ 2022-07-16 163/week @ 2022-07-23 152/week @ 2022-07-30 280/week @ 2022-08-06 195/week @ 2022-08-13 167/week @ 2022-08-20 214/week @ 2022-08-27 201/week @ 2022-09-03 240/week @ 2022-09-10 186/week @ 2022-09-17 203/week @ 2022-09-24

866 downloads per month
Used in 5 crates

MIT license

24KB
466 lines

Discord Rich Presence

crates.io Docs

A simple, cross-platform crate to connect and send data to Discord's IPC. Special attention is given to sending rich presence data.

Example

use discord_rich_presence::{activity, DiscordIpc, DiscordIpcClient};

fn main() -> Result<(), Box<dyn std::error::Error>> {
    let mut client = DiscordIpcClient::new("<some application ID>")?;

    client.connect()?;
    client.set_activity(activity::Activity::new()
        .state("foo")
        .details("bar")
    )?;
    client.close()?;

    Ok(())
}

lib.rs:

This library provides easy access to the Discord IPC.

It provides implementations for both Unix and Windows operating systems, with both implementations using the same API. Thus, this crate can be used in a platform-agnostic manner.

Hello world

use discord_rich_presence::{activity, DiscordIpc, DiscordIpcClient};

fn main() -> Result<(), Box<dyn std::error::Error>> {
    let mut client = DiscordIpcClient::new("<some client id>")?;
    client.connect()?;

    let payload = activity::Activity::new().state("Hello world!");
    client.set_activity(payload)?;
}

Dependencies

~0.8–1.6MB
~34K SLoC