#client #harmony #protocols #chat #meant #proc #harmony-rust-sdk

harmony_derive

harmony_rust_sdk的过程宏。不建议公开使用。

4个版本

0.1.3 2021年11月29日
0.1.2 2021年4月7日
0.1.1 2021年2月15日
0.1.0 2021年1月13日

#7 in #harmony

每月 29 次下载
用于 harmony_rust_sdk

MIT 协议

16KB
401

GitHub Workflow Status crates.io docs.rs docs.rs MSRV

Rust实现的Harmony聊天协议。目前实现了轻量级客户端和客户端API(由hrpc提供动力),以及通过hrpc-build自动生成的API。

要求

  • 最新的稳定版Rust和Cargo。
  • 如果你使用Nix,nix-shell(或者如果你使用flakes,使用nix develop)应该可以满足需求。
  • 否则,你需要获取protobuf并确保protocPATH环境变量中。
    • 如果build.rs由于某些原因失败,请确保设置
      • PROTOC环境变量为你的protoc可执行文件
      • PROTOC_INCLUDE环境变量为protobuf包含文件所在的路径,最可能是在/usr/share/include

示例

  • message_log:展示了在公会中运行的简单消息日志机器人。当有人发布消息时,它将消息记录到控制台。
  • 机器人运行说明
    • 使用以下命令运行机器人:`GUILD_INVITE=invite cargo run --package example_name`。
    • 确保机器人具有查看频道、发送消息等必要的权限。

包功能

  • 默认情况下,仅生成Harmony中使用的裸骨般的常用API类型。您可以通过启用以下列出的功能来根据需要自定义包
    • 启用 gen_all_protocols 以启用所有协议,包括稳定和预发布。
    • 启用 rkyv 功能以派生 rkyv::{Archive, Deserialize, Serialize} 以支持所有 Harmony API 类型(除了 batch 服务)。
      • 启用 rkyv_validation 以派生 bytecheck::CheckBytes 以支持所有 Harmony API 类型,并启用 rkyv/validation
    • 启用 serde_derive 功能以派生 serde::{Deserialize, Serialize} 以支持所有 Harmony API 类型(除了 batch 服务)。
    • 启用 valuable 功能以派生 valuable::Valuable 以支持所有 Harmony API 类型(除了 batch 服务)。
    • 自定义 hRPC 代码生成
      • 启用 gen_client 功能以生成启用协议的客户端服务代码。
      • 启用 gen_server 功能以生成启用协议的服务器服务代码。
    • 客户端
      • 为使用 hyper 并在本地平台上运行的轻量级客户端实现启用 client_native 功能。
      • 为在 Web 平台上运行的轻量级客户端实现启用 client_web 功能(WASM)。
      • 启用 client_backoff 功能以在限流请求上启用请求重试。
    • 稳定协议(为所有启用 gen_stable_protocols
      • 启用 gen_chat 功能以生成聊天服务代码。
      • 启用 gen_auth 功能以生成身份验证服务代码。
      • 启用 gen_mediaproxy 功能以生成媒体代理服务代码。
      • 启用 gen_harmonytypes 功能以生成常见的 Harmony 类型。
      • 启用 gen_sync 功能以生成同步服务代码。
      • 启用 gen_emote 功能以生成表情服务代码。
      • 启用 gen_profile 功能以生成个人资料服务代码。
      • 启用 gen_batch 功能以生成批处理服务代码。
      • 启用 rest 功能以包含 REST API 代码。
    • 预发布协议(为所有启用 gen_staging_protocols
      • 启用 staging_gen_voice 功能以生成语音服务代码。
      • 启用 staging_gen_bots 功能以生成机器人服务代码。

MSRV

最低支持的 Rust 版本:当前稳定版。

更改 MSRV 不被视为 semver-breaking 变更。

依赖项

~1.5MB
~35K SLoC