mirror of
https://github.com/mamoe/mirai.git
synced 2025-01-05 07:30:09 +08:00
397d824d33
* enhance(ECDH): reconstruct ECDH common: 移动特定于 QQ 平台的实现到 OicqECDH,重新设计 ECDH,使 ECDH 类只针对算法本身,而不过多包括 QQ 协议的使用细节 jvm: 尝试优先使用平台加密实现,可能改善性能 jvm & android: 使用 curveName `secp256r1` 代替 `prime256v1`,前者在 Java 中更常用,可以被更多的 JCE 实现所识别(虽然都是指同一条曲线) android: 使用系统自带的实现以减少依赖,并尝试兼容 Android P+ 版本 native: 中间储存时保留OpenSSL内部结构而不反复 new & free,提高性能 (为了实现智能指针,需要用到 `@ExperimentalStdlibApi` 的 `createCleaner`,但这种风险应该可以接受) native: 直接使用 point/bignum 到 bytes 的转换,避免了 hex string 作为中间层,提高效率 * test(ECDH): fix AndroidTest * style(Ecdh): obey official Kotlin coding conventions > When using an acronym as part of a declaration name, capitalize it if it consists of two letters (IOStream); capitalize only the first letter if it is longer (XmlFormatter, HttpInputStream). > [View origin](https://kotlinlang.org/docs/coding-conventions.html) Co-authored-by: ArcticLampyrid <arcticlampyrid@outlook.com> |
||
---|---|---|
.. | ||
compatibility-validation | ||
src | ||
.gitignore | ||
build.gradle.kts | ||
README.md |
mirai-core
mirai 核心实现模块。首先阅读 mirai-core-api/README.md。
本文仅介绍重要部分。
架构
包名 | 描述 |
---|---|
net.mamoe.mirai.internal |
mirai 核心 API 的实现 |
.contact |
联系人实现 |
.message |
消息系统的实现 |
.network |
网络层实现 |
.utils |
工具类 |
net.mamoe.mirai.internal.contact
AbstractContact
所有 Contact
实现的基类. 实现生命周期等.
SendMessageHandler
处理 mirai 消息系统 Message
到协议数据结构的转换, 并处理长消息上传, 音乐转发上传等.
net.mamoe.mirai.internal.message
ReceiveMessageTransformer
处理协议数据结构到 Message
的转换. 设有 RefinableMessage
处理长消息下载, 合并转发下载并展开等.
RefinableMessage
支持处理长消息下载, 合并转发下载并展开等.
Image
实现
图片的实现的基类为 AbstractImage
.
在底层协议, 群图片与私聊图片很不同. 因此图片实现可以是 GroupImage
或 FriendImage
.
图片又细分了 OnlineImage
和 OfflineImage
. 故有 OnlineGroupImage
等四个类型, 及他们分别的 Impl
.
OnlineImage
为通过 Contact.uploadImage
上传得到的, 或刚刚从服务器接收的图片对象. OfflineImage
则为反序列化得到的对象.
MessageSource
实现
MessageSource
在协议底层十分复杂,