14 releases (7 breaking)
| 0.8.0 | Jan 9, 2022 |
|---|---|
| 0.7.0 | Nov 29, 2021 |
| 0.6.1 | Jul 9, 2021 |
| 0.5.1 | Mar 9, 2021 |
| 0.1.0 | Dec 21, 2020 |
#4 in #harmony
39 downloads per month
Used in ilo-toki
105KB
2.5K
SLoC
Rust implementation of the Harmony chat protocol. Currently implements a lightweight client and a client API (powered by hrpc), along with auto generated API via hrpc-build.
Requirements
- Latest stable Rust and Cargo.
- If you are using Nix,
nix-shell(ornix developif you use flakes) should get you covered. - Otherwise, you'll need to get protobuf and make sure
protocis in yourPATHenv variable.- If for some reason
build.rsfails, make sure to set:PROTOCenv variable to yourprotocexecutable- and
PROTOC_INCLUDEenv variable to wherever protobuf include files are located, most likely in/usr/share/include.
- If for some reason
Examples
echo_bot: Showcases a simple message echo bot that operates in a guild. It will repost messages whenever someone else posts a message.message_log: Showcases a simple message log bot that operates in a guild. It will log messages to the console whenever someone posts a message.cmd_bot: A more complex bot that responds to "commands". The commands are:- r!ping: responds with "Pong! Took X secs."
- r!hello: responds with "Hello, username!"
- r!uptime: responds with "Been running for X secs."
- Bot run instructions:
- Run bots with
GUILD_INVITE=invite cargo run --example example_name. - Make sure the bot has necessary permissions to view channels / send messages etc.
- Run bots with
Crate features
- By default, only a bare-bones common API of all services is generated. You can
customize the crate to your needs by enabling feature(s) listed below:
- Enable the
client_nativefeature for a lightweight client implementation that useshyperand works on native platforms. - Enable the
client_webfeature for a lightweight client implementation that works on web platforms (WASM). - Enable the
client_backofffeature to enable request retrying on ratelimited requests. - Enable the
gen_clientfeature to generate client service code. - Enable the
gen_serverfeature to generate server service code. - (Default) Enable the
gen_chatfeature to generate chat service code. - (Default) Enable the
gen_authfeature to generate auth service code. - (Default) Enable the
gen_voicefeature to generate voice service code. - (Default) Enable the
gen_mediaproxyfeature to generate media proxy service code. - (Default) Enable the
gen_harmonytypesfeature to generate common Harmony types. - (Default) Enable the
gen_syncfeature to generate sync service code. - (Default) Enable the
gen_emotefeature to generate emote service code. - (Default) Enable the
gen_profilefeature to generate profile service code. - (Default) Enable the
gen_batchfeature to generate batch service code.
- Enable the
MSRV
Minimum Supported Rust Version: current stable.
Changing MSRV is not considered a semver-breaking change.
Dependencies
~4–18MB
~285K SLoC