mirai/README.md

167 lines
7.7 KiB
Markdown
Raw Normal View History

2020-02-16 23:24:02 +08:00
<div align="center">
2020-02-16 23:34:10 +08:00
<img width="160" src="http://img.mamoe.net/2020/02/16/a759783b42f72.png" alt="logo"></br>
2020-02-20 20:58:40 +08:00
2020-02-29 13:56:23 +08:00
2020-02-17 00:13:43 +08:00
<img width="95" src="http://img.mamoe.net/2020/02/16/c4aece361224d.png" alt="title">
2020-02-25 23:25:22 +08:00
2020-02-17 00:13:43 +08:00
----
2020-02-20 20:58:40 +08:00
2019-12-16 04:03:51 +08:00
[![Gitter](https://badges.gitter.im/mamoe/mirai.svg)](https://gitter.im/mamoe/mirai?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge)
[![Actions Status](https://github.com/mamoe/mirai/workflows/CI/badge.svg)](https://github.com/mamoe/mirai/actions)
[![Download](https://api.bintray.com/packages/him188moe/mirai/mirai-core/images/download.svg)](https://bintray.com/him188moe/mirai/mirai-core/)
2020-02-16 23:24:02 +08:00
2020-02-17 00:10:13 +08:00
Mirai 是一个在全平台下运行,提供 QQ Android 和 TIM PC 协议支持的高效率机器人框架
2020-02-16 23:54:49 +08:00
2020-02-17 00:04:05 +08:00
这个项目的名字来源于
2020-02-17 00:07:29 +08:00
<p><a href = "http://www.kyotoanimation.co.jp/">京都动画</a>作品<a href = "https://www.bilibili.com/bangumi/media/md3365/?from=search&seid=14448313700764690387">《境界的彼方》</a><a href = "https://zh.moegirl.org/zh-hans/%E6%A0%97%E5%B1%B1%E6%9C%AA%E6%9D%A5">栗山未来(Kuriyama <b>Mirai</b>)</a></p>
2020-02-17 00:35:32 +08:00
<p><a href = "https://www.crypton.co.jp/">CRYPTON</a><a href = "https://www.crypton.co.jp/miku_eng">初音未来</a>为代表的创作与活动<a href = "https://magicalmirai.com/2019/index_en.html">(Magical <b>Mirai</b>)</a></p>
2020-02-17 00:07:29 +08:00
图标以及形象由画师<a href = "">DazeCake</a>绘制
2020-02-16 23:24:02 +08:00
</div>
2020-02-16 23:36:22 +08:00
## Mirai
2020-02-20 20:58:40 +08:00
2019-12-05 20:12:51 +08:00
**[English](README-eng.md)**
2019-08-08 12:45:12 +08:00
2020-02-23 14:50:57 +08:00
多平台 **QQ Android****TIM PC** 协议支持库与高效率的机器人框架.
2020-02-04 16:25:26 +08:00
纯 Kotlin 实现协议和支持框架,模块<b>全部免费开源</b>
2020-03-03 09:47:33 +08:00
目前可运行在 JVM 或 Android 平台。
mirai 既可以作为你项目中的 QQ 协议支持库, 也可以作为单独的应用程序与插件承载 QQ 机器人服务。
2019-12-25 01:50:32 +08:00
**一切开发旨在学习,请勿用于非法用途**
2019-09-01 01:57:14 +08:00
2020-03-03 09:47:33 +08:00
加入 [![Gitter](https://badges.gitter.im/mamoe/mirai.svg)](https://gitter.im/mamoe/mirai?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge), 或加入 QQ 群: 655057127
2020-02-29 13:56:23 +08:00
2020-02-20 20:58:40 +08:00
## 开始使用Mirai
2020-03-03 09:47:33 +08:00
Mirai 目前为快速流转Moving fast状态, 增量版本之间可能不具有兼容性,任何功能都可能在没有警告的情况下添加、删除或者更改。
Mirai 源码完全开放, 您可以参考 Mirai 的协议实现来开发其他框架, 但需注明来源并遵守开源协议要求 (AGPLv3)。
2020-02-20 20:58:40 +08:00
2020-02-21 00:35:20 +08:00
### 开发者
2020-02-29 13:56:23 +08:00
2020-03-01 02:23:20 +08:00
了解 mirai 架构: [Wiki](https://github.com/mamoe/mirai/wiki/Home)
2020-02-21 11:49:42 +08:00
2020-03-01 02:23:20 +08:00
#### 使用 mirai 作为服务器,为 mirai 开发插件
2020-02-21 00:35:20 +08:00
2020-03-03 09:47:33 +08:00
- (官方)`Java` 或 `Kotlin` 为 [mirai-console](https://github.com/mamoe/mirai-console) 直接编写插件并与其他插件开发者合作共享
- (社区)`C`, `C++` 等原生语言: [mirai-native](https://github.com/iTXTech/mirai-native) 支持酷Q插件在mirai上运行
- (社区)`Python`: [python-mirai](https://github.com/Chenwe-i-lin/python-mirai) 基于`Mirai-http-api`的 Mirai Framework for Python
- (社区)`JavaScript`(`NodeJS`) [node-mirai](https://github.com/RedBeanN/node-mirai) Mirai的NodeJs SDK
- (官方)其他任意语言: [mirai HTTP 接口](https://github.com/mamoe/mirai/tree/master/mirai-api-http) 进行接入
2020-02-29 13:56:23 +08:00
2020-03-01 02:23:20 +08:00
#### 使用 mirai 为第三方依赖库引入项目
2020-02-20 20:58:40 +08:00
2020-03-03 09:33:18 +08:00
Demos: [mirai-demos](https://github.com/mamoe/mirai-demos)
2020-03-03 09:47:33 +08:00
- `Kotlin` 简略版: [Mirai Guide - Quick Start](/docs/guide_quick_start.md)
- `Kotlin` 新手版: [Mirai Guide - Getting Started](/docs/guide_getting_started.md)
- `Java` 查看上述 Demos
2020-02-29 13:56:23 +08:00
2020-02-20 20:58:40 +08:00
### 使用者
2020-02-21 11:49:42 +08:00
2020-03-03 09:47:33 +08:00
- [mirai-console](https://github.com/mamoe/mirai/tree/master/mirai-console) 支持插件 **本模块正在完善**
2020-02-29 13:56:23 +08:00
2020-02-21 00:35:20 +08:00
### 我是其他平台的使用者
2020-02-21 11:49:42 +08:00
2020-02-21 00:35:57 +08:00
#### 酷Q平台用户:
2020-02-20 20:58:40 +08:00
2020-03-03 09:47:33 +08:00
- 酷Q的插件可以在 mirai 中加载, 详见 [Mirai-Native](https://github.com/iTXTech/mirai-native)
- 使用 `酷Q HTTP API` 的插件将可以在 mirai 中加载,`Mirai-CQ-Adapter` 正在进行中
2020-02-29 13:56:23 +08:00
2020-02-21 11:49:42 +08:00
## 更新日志
2020-02-20 20:58:40 +08:00
2020-02-21 11:49:42 +08:00
* 在 [Project](https://github.com/mamoe/mirai/projects/3) 查看已支持功能和计划
* 在 [CHANGELOG](https://github.com/mamoe/mirai/blob/master/CHANGELOG.md) 查看版本更新记录 (仅发布的版本)
2020-02-20 20:58:40 +08:00
2020-02-29 13:56:23 +08:00
2020-02-21 11:49:42 +08:00
## 模块
2020-02-20 20:58:40 +08:00
2020-01-31 02:09:17 +08:00
### mirai-core
2020-02-20 20:58:40 +08:00
2020-02-21 11:49:42 +08:00
通用 API 模块,一套 API 适配两套协议。
2020-01-29 03:45:00 +08:00
**请参考此模块的 API**
2020-02-20 20:58:40 +08:00
2020-02-04 16:24:30 +08:00
### mirai-core-qqandroid
2020-02-20 20:58:40 +08:00
2020-03-03 09:47:33 +08:00
QQ for Android 8.2.7 版本2020 年 3 月)协议的实现,目前完成大部分。
2020-02-20 20:58:40 +08:00
2020-02-04 16:24:30 +08:00
- 高兼容性:协议仅含极少部分为硬编码,其余全部随官方方式动态生成
- 高安全性密匙随机ECDH 动态计算
- 已支持大部分使用场景, 详情请在[Project](https://github.com/mamoe/mirai/projects/3)查看
2020-01-31 02:09:17 +08:00
### mirai-core-timpc
2020-02-20 20:58:40 +08:00
2020-02-18 20:27:05 +08:00
TIM PC 2.3.2 版本2019 年 8 月)协议的实现
2020-01-25 12:57:44 +08:00
支持的功能:
2020-02-20 20:58:40 +08:00
2020-01-25 12:57:44 +08:00
- 消息收发:图片文字复合消息,图片消息
- 群管功能:群员列表,禁言
2020-02-20 20:58:40 +08:00
(目前不再更新此协议,请关注上文的安卓协议)
2020-01-25 12:57:44 +08:00
2020-02-29 13:56:23 +08:00
2020-02-21 11:49:42 +08:00
## 加入开发
2020-02-29 13:56:23 +08:00
2020-01-26 03:55:03 +08:00
我们欢迎一切形式的贡献。
2020-03-03 09:47:33 +08:00
我们也期待有更多人能加入 mirai 的开发。
2020-01-26 03:55:03 +08:00
2020-03-03 09:47:33 +08:00
若在使用过程中有任何疑问, 可提交 `issue` 或是[邮件联系](mailto:support@mamoe.net). 我们希望 mirai 变得更易用.
2020-01-26 03:55:03 +08:00
2020-02-21 11:49:42 +08:00
您的 `star` 是对我们最大的鼓励(点击项目右上角)
2020-01-26 03:55:03 +08:00
2020-02-29 13:56:23 +08:00
2020-02-21 11:49:42 +08:00
## 鸣谢
2019-11-02 18:49:48 +08:00
2020-02-21 11:49:42 +08:00
特别感谢 [JetBrains](https://www.jetbrains.com/?from=mirai) 为开源项目提供免费的 [IntelliJ IDEA](https://www.jetbrains.com/idea/?from=mirai) 等 IDE 的授权
[<img src=".github/jetbrains-variant-3.png" width="200"/>](https://www.jetbrains.com/?from=mirai)
2019-10-27 03:36:26 +08:00
2020-02-25 18:09:30 +08:00
### 第三方类库(无排名)
2020-02-29 13:56:23 +08:00
2019-11-02 18:36:33 +08:00
- [kotlin-stdlib](https://github.com/JetBrains/kotlin)
- [kotlinx-coroutines](https://github.com/Kotlin/kotlinx.coroutines)
- [kotlinx-io](https://github.com/Kotlin/kotlinx-io)
- [kotlin-reflect](https://github.com/JetBrains/kotlin)
- [pcap4j](https://github.com/kaitoy/pcap4j)
- [atomicfu](https://github.com/Kotlin/kotlinx.atomicfu)
- [ktor](https://github.com/ktorio/ktor)
- [tornadofx](https://github.com/edvin/tornadofx)
- [javafx](https://github.com/openjdk/jfx)
2019-12-01 22:18:16 +08:00
- [kotlinx-serialization](https://github.com/Kotlin/kotlinx.serialization)
2020-01-10 08:58:05 +08:00
- [bouncycastle](https://www.bouncycastle.org/java.html)
2020-02-16 01:06:42 +08:00
- [lanterna](https://github.com/mabe02/lanterna/tree/master)
- [fastjson](https://github.com/alibaba/fastjson)
- [toml4j](https://github.com/mwanji/toml4j)
- [snakeyaml](https://mvnrepository.com/artifact/org.yaml/snakeyaml)
2019-10-27 23:20:53 +08:00
2020-02-29 13:56:23 +08:00
2020-02-21 11:49:42 +08:00
## 许可证
2020-02-20 20:58:40 +08:00
2019-12-31 13:21:08 +08:00
协议原版权归属腾讯科技股份有限公司所有,本项目其他代码遵守:
2019-12-30 19:45:01 +08:00
**GNU AFFERO GENERAL PUBLIC LICENSE version 3**
2019-12-31 13:21:08 +08:00
其中部分要求:
2020-02-20 20:58:40 +08:00
2019-12-30 19:45:01 +08:00
- (见 LICENSE 第 13 节) 尽管本许可协议有其他规定,但如果您修改本程序,则修改后的版本必须显着地为所有通过计算机网络与它进行远程交互的用户(如果您的版本支持这种交互)提供从网络服务器通过一些标准或惯用的软件复制方法**免费**访问相应的**源代码**的机会
2020-01-14 21:57:10 +08:00
- (见 LICENSE 第 4 节) 您可以免费或收费地传递这个项目的源代码或目标代码(即编译结果), **但前提是提供明显的版权声明** (您需要标注本 `GitHub` 项目地址)
2020-02-21 11:55:14 +08:00
------
2020-02-20 20:58:40 +08:00
2020-02-21 11:49:42 +08:00
Copyright (C) 2019-2020 mamoe and Mirai contributors
2020-02-25 23:25:22 +08:00
2020-02-21 11:49:42 +08:00
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as
published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version.
2020-02-25 23:25:22 +08:00
2020-02-21 11:49:42 +08:00
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
2020-02-25 23:25:22 +08:00
2020-02-21 11:49:42 +08:00
You should have received a copy of the GNU Affero General Public License
2020-03-01 02:23:20 +08:00
along with this program. If not, see <http://www.gnu.org/licenses/>.