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.
nix-shell
(or nix develop
if you use flakes) should
get you covered.protoc
is in your PATH
env variable.
build.rs
fails, make sure to set:PROTOC
env variable to your protoc
executablePROTOC_INCLUDE
env variable to wherever protobuf include files are
located, most likely in /usr/share/include
.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.GUILD_INVITE=invite cargo run --package example_name
.gen_all_protocols
to enable all protocols, stable and staging.rkyv
feature to derive rkyv::{Archive, Deserialize, Serialize}
for all Harmony API types (except the batch
service).rkyv_validation
to derive bytecheck::CheckBytes
for all Harmony
API types and enable rkyv/validation
.serde_derive
feature to derive serde::{Deserialize, Serialize}
for all Harmony API types (except the batch
service).valuable
feature to derive valuable::Valuable
for all Harmony
API types (except the batch
service).gen_client
feature to generate client service code for
enabled protocols.gen_server
feature to generate server service code for
enabled protocols.client_native
feature for a lightweight client implementation
that uses hyper
and works on native platforms.client_web
feature for a lightweight client implementation that
works on web platforms (WASM).client_backoff
feature to enable request retrying on ratelimited
requests.gen_stable_protocols
for all):gen_chat
feature to generate chat service code.gen_auth
feature to generate auth service code.gen_mediaproxy
feature to generate media proxy service code.gen_harmonytypes
feature to generate common Harmony types.gen_sync
feature to generate sync service code.gen_emote
feature to generate emote service code.gen_profile
feature to generate profile service code.gen_batch
feature to generate batch service code.rest
feature to include REST API code.gen_staging_protocols
for all):staging_gen_voice
feature to generate voice service code.staging_gen_bots
feature to generate bots service code.Minimum Supported Rust Version: current stable.
Changing MSRV is not considered a semver-breaking change.