A simple, workable RCS client library.

Overview

rust-rcs-client

A simple, workable RCS client library.

RCS capabilities are mainly provided by your cellular network. This is a working client side implementation.

What does it do 主要功能

This library provides most functions required for an RCS application/service. Listed as follows:

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

auto-config

自动配置流程

message send/receive

消息收发

file upload/download

文件上传/下载

Chatbots

聊天机器人

How to use 如何使用

To use this library in a real device (like a Android mobile), you should compile for the correct architecture. You may want to add a .cargo/config file to tell Rust to use your specific toolchain. It would usually look like this:

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

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

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

Also, for using .so version of the library under Android, you should specify the soname for the library otherwise the native code will not load, you could do this by changing the build command to the following:

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

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

What's missing 缺失部分

Although this library will work under most RCS network, I do have to point out there are features missing that might cause problems under a different network coniguration.

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

For messaging: only cpm standalone mode is supported now.

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

For file transfer: only http file transfer is supported now.

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

Demo

You can find a demo App here.

https://github.com/Hirohumi/RustyRcs

Contact

If you have any doubt, contact [email protected] or QQ:364123445

如有疑问,欢迎联系

You might also like...
An async-ready Phoenix Channels v2 client library in Rust

Phoenix Channels This crate implements a Phoenix Channels (v2) client in Rust. Status NOTE: This client is still a work-in-progress, though it has eno

A simple key value database for storing simple structures.

Perdia-DB A simple key value database for storing simple structures. No nesting of structures is supported, but may be implemented in the future. Toke

rust-mysql-simple support library for the r2d2 connection pool

r2d2-mysql rust-mysql-simple support library for the r2d2 connection pool.

A simple library for Firebase real-time database

Firerust A very simple library to implement the Firebase real-time database in your code with the best performance Instalation Add this to your Cargo.

Cassandra DB native client written in Rust language. Find 1.x versions on https://github.com/AlexPikalov/cdrs/tree/v.1.x Looking for an async version? - Check WIP https://github.com/AlexPikalov/cdrs-async
Cassandra DB native client written in Rust language. Find 1.x versions on https://github.com/AlexPikalov/cdrs/tree/v.1.x Looking for an async version? - Check WIP https://github.com/AlexPikalov/cdrs-async

CDRS CDRS is looking for maintainers CDRS is Apache Cassandra driver written in pure Rust. 💡 Looking for an async version? async-std https://github.c

A Rust client for the ElasticSearch REST API

rs-es Introduction An ElasticSearch client for Rust via the REST API. Targetting ElasticSearch 2.0 and higher. Other clients For later versions of Ela

An Elasticsearch REST API client for Rust

elastic elastic is an efficient, modular API client for Elasticsearch written in Rust. The API is targeting the Elastic Stack 7.x. elastic provides st

A easy-use client to influxdb

InfluxDBClient-rs A easy-use client to influxdb Overview This is an InfluxDB driver for Rust. Status This project has been able to run properly, PR is

Telegram bot API client for Rust
Telegram bot API client for Rust

Frankenstein Telegram bot API client for Rust. It's a complete wrapper for Telegram bot API and it's up to date with version 5.2 of the API. Frankenst

Owner
EverfrosT
EverfrosT
A simple yet powerful bluetooth client.

Overskride A Bluetooth and (soon to be) Obex client that is straight to the point, DE/WM agnostic, and beautiful (also soon to be) :D Prerequisites gt

kaii 23 Oct 7, 2023
CouchDB client-side library for the Rust programming language

Chill Chill is a client-side CouchDB library for the Rust programming language, available on crates.io. It targets Rust Stable. Chill's three chief de

null 35 Jun 26, 2022
An etcd client library for Rust.

etcd An etcd client library for Rust. etcd on crates.io Documentation for the latest crates.io release Running the tests Install Docker and Docker Com

Jimmy Cuadra 138 Dec 27, 2022
Mysql client library implemented in rust.

mysql This crate offers: MySql database driver in pure rust; connection pool. Features: macOS, Windows and Linux support; TLS support via nativetls cr

Anatoly I 548 Dec 31, 2022
Skytable rust client support library for the bb8 connection pool

bb8-skytable Skytable rust client support library for the bb8 connection pool. Heavily based on bb8-redis Basic usage example use bb8_skytable::{

null 3 Sep 18, 2021
CouchDB client library for the Rust programming language

CouchDB This project is reborn! As of its v0.6.0 release, the couchdb crate has new life as a toolkit instead of providing a full-blown client. In a n

null 20 Jul 17, 2021
LDAP client library

LDAP client library A pure-Rust LDAP client library using the Tokio stack. Compatibility with Tokio versions Tokio 1.0 is the long-term stable version

null 166 Jan 4, 2023
OBKV Table Client is Rust Library that can be used to access table data from OceanBase storage layer.

OBKV Table Client is Rust Library that can be used to access table data from OceanBase storage layer. Its access method is different from JDBC, it skips the SQL parsing layer, so it has significant performance advantage.

OceanBase 4 Nov 14, 2022
rustodrive is a rust client library for communicating with ODrives using the CAN protocol.

rustodrive is a WIP client library for communicating with ODrives using the CAN protocol. It is more than a simple CAN sender/receiver and has many co

null 5 Oct 31, 2022
Async Lightweight HTTP client using system native library if possible. (Currently under heavy development)

Async Lightweight HTTP Client (aka ALHC) What if we need async but also lightweight http client without using such a large library like reqwest, isahc

SteveXMH 7 Dec 15, 2022