wechat-api-rs 0.1.0

A Rust SDK for WeChat Official Account and Mini Program APIs
Documentation

WeChat SDK for Rust 🚀

Crates.io Documentation License: MIT License: Apache 2.0

一个功能完整、类型安全、易于使用的Rust微信开发SDK,支持微信公众号和小程序APIs。

✨ 特性

  • 🏗️ 模块化架构:独立的公众号和小程序模块,按需使用
  • 🔒 类型安全:完整的类型定义,编译期错误检查
  • 异步优先:基于Tokio的异步实现,支持高并发
  • 🛡️ 错误处理:统一的错误类型和优雅的错误处理
  • 🔧 易于配置:多种配置方式,支持环境变量和配置文件
  • 📖 丰富文档:完整的API文档和使用示例
  • 🧪 测试覆盖:全面的单元测试和集成测试

🚀 快速开始

添加依赖

[dependencies]
wechat-sdk = "0.1.0"
tokio = { version = "1.0", features = ["full"] }

基础使用

use wechat_sdk::WeChat;

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    // 创建微信客户端
    let client = WeChat::builder()
        .app_id("your_app_id")
        .app_secret("your_app_secret")
        .build()?;

    // 发送公众号消息
    client.official()
        .message()
        .to("user_openid")
        .text("Hello World!")
        .send().await?;

    // 小程序登录验证
    let session = client.miniapp()
        .auth()
        .code_to_session("js_code")
        .call().await?;

    println!("用户OpenID: {}", session.openid);
    Ok(())
}

📦 功能模块

模块 功能 特性标志
wechat-core 核心功能 -
wechat-official 公众号API official
wechat-miniapp 小程序API miniapp
wechat-crypto 加密解密 -
wechat-types 类型定义 -

按需使用

# 只使用公众号功能
wechat-sdk = { version = "0.1.0", default-features = false, features = ["official"] }

# 只使用小程序功能
wechat-sdk = { version = "0.1.0", default-features = false, features = ["miniapp"] }

# 添加缓存支持
wechat-sdk = { version = "0.1.0", features = ["cache"] }

🏗️ 架构设计

┌─────────────────────────────────────────┐
│           用户API层 (Public API)         │
├─────────────────────────────────────────┤
│     业务逻辑层 (Business Logic)          │
├─────────────────────────────────────────┤
│       协议层 (Protocol Layer)           │
├─────────────────────────────────────────┤
│       传输层 (Transport Layer)          │
└─────────────────────────────────────────┘

📚 文档

🌟 使用场景

公众号开发

  • ✅ 消息接收和自动回复
  • ✅ 自定义菜单管理
  • ✅ 用户管理和标签操作
  • ✅ 模板消息推送
  • ✅ 素材管理
  • ✅ 网页授权

小程序开发

  • ✅ 登录凭证校验
  • ✅ 用户信息解密
  • ✅ 手机号获取
  • ✅ 订阅消息推送
  • ✅ 数据统计

Web框架集成

  • 🌐 Axum - 现代异步Web框架
  • 🌐 Actix-web - 高性能Actor模型框架
  • 🌐 Warp - 轻量级Web框架
  • 🌐 Rocket - 类型安全Web框架

📖 示例

查看 examples 目录获取更多示例:

运行示例

# 设置环境变量
export WECHAT_APP_ID="your_app_id"
export WECHAT_APP_SECRET="your_app_secret"

# 运行基础示例
cargo run --example basic_usage

# 运行Web服务器示例
cargo run --example axum_integration --features web-axum

🛠️ 开发环境

环境要求

  • Rust 1.70+
  • Tokio runtime

构建项目

git clone https://github.com/your-username/wechat-sdk-rust.git
cd wechat-sdk-rust
cargo build

运行测试

# 运行所有测试
cargo test

# 运行特定模块测试
cargo test --package wechat-core
cargo test --package wechat-official
cargo test --package wechat-miniapp

🤝 贡献

欢迎贡献代码!请阅读 CONTRIBUTING.md 了解贡献指南。

开发流程

  1. Fork 项目
  2. 创建特性分支 (git checkout -b feature/amazing-feature)
  3. 提交更改 (git commit -m 'Add amazing feature')
  4. 推送分支 (git push origin feature/amazing-feature)
  5. 创建 Pull Request

📄 许可证

本项目采用 MIT 或 Apache-2.0 双许可证。详见:

🙏 致谢

感谢所有贡献者和以下项目的灵感:

🔗 相关链接

📞 支持

如果你在使用过程中遇到问题:

  1. 查看 文档
  2. 搜索已有 Issues
  3. 创建新 Issue

用Rust构建更好的微信应用 🦀💪

文档 | 示例 | 更新日志