#client #networking #file #chat-bot #rcs #workable

bin+lib rust-rcs-client

一个简单、实用的 RCS 客户端库

3 个版本 (有重大变化)

0.5.0 2023 年 12 月 27 日
0.3.0 2023 年 10 月 20 日
0.1.0 2023 年 7 月 4 日

#1849网络编程

Apache-2.0

795KB
16K SLoC

rust-rcs-client

一个简单、实用的 RCS 客户端库。

RCS 功能主要由您的蜂窝网络提供。这是一个工作的客户端实现。

主要功能

此库提供了 RCS 应用/服务所需的大部分功能。如下所示

这个库提供了一个 RCS 客户端所需要的大部分功能,列举如下:

自动配置

自动配置流程

消息发送/接收

消息收发

文件上传/下载

文件上传/下载

聊天机器人

聊天机器人

如何使用

要在真实设备(如 Android 手机)中使用此库,您应该编译正确的架构。您可能需要添加一个 .cargo/config 文件来告诉 Rust 使用您特定的工具链。它通常如下所示

在真机上使用时需要注意编译架构。在工作目录添加 .cargo/config 文件可以修改 Rust 在编译到具体架构时所使用的工具链,一般如下:

[target.aarch64-linuex-android]
linker = "your clang"

[env]
CC_aarch64-linux-android = "your clang"
AR_aarch64-linux-android = "your llvm-ar"

此外,为了在 Android 下使用库的 .so 版本,您应该指定库的 soname,否则原生代码将无法加载,您可以通过更改构建命令来完成此操作

如果要在安卓下面用 .so 版本的库,需要按照以下指令编译,否则会加载不成功:

RUSTFLAGS='-C link-arg=-Wl,-soname,librust_rcs_client.so' cargo build --target aarch64-linux-android

缺失部分

尽管这个库能在大多数 RCS 网络下运行,但必须指出,有一些向前兼容性的功能确实没有实现,可能会在不同网络配置下造成问题。

虽然这个库能在大部分 RCS 网络下运行(基本就是中国三大运营商),有一些向前兼容性的功能确实是没有实现的。

对于消息:目前只支持 standalone 模式。

暂时只支持消息的 standalone 模式。

对于文件传输:目前只支持 HTTP 模式。

文件传输也只支持 HTTP 模式(中国移动已经把 MSRP 文件传输下线了)。

演示

您可以在以下位置找到演示应用。

https://github.com/Hirohumi/RustyRcs

联系

如果您有任何疑问,请联系 [email protected] 或 QQ:364123445

如有疑问,欢迎联系

依赖项

~31–42MB
~1M SLoC