2019-11-21 21:32:03 +08:00
# Mirai
2020-07-26 15:11:12 +08:00
Mirai is a high-performance multi-platform library, as well as a framework, providing protocol support for Tencent QQ.
2019-12-05 20:12:51 +08:00
2020-07-26 15:11:12 +08:00
Mirai is designed to handle all sorts of messaging works that can be automatically done by bots **in a perfect way** .
2019-12-05 20:12:51 +08:00
2020-05-19 19:29:22 +08:00
> Tencent QQ: A modern messaging software used by all Chinese netizens.
2020-02-21 11:55:14 +08:00
2020-05-19 19:29:22 +08:00
## Start
2020-12-31 21:00:43 +08:00
**Development document**: [docs ](docs )
2019-12-05 20:12:51 +08:00
2020-05-19 19:29:22 +08:00
### Use as a framework
2020-07-26 15:11:12 +08:00
Mirai is able to run as a plugin-supported framework.
The community, (with `mirai-console` ) that allows developers to share their plugins, and for users to install plugins quickly, is building in progress.
2020-05-19 19:29:22 +08:00
2021-12-06 20:53:07 +08:00
- JVM languages like `Java` or `Kotlin` : Make Jar plugin
for [mirai-console ](/mirai-console ) directly and share with other
developers through the plugin center.
- `Kotlin Script` : [mirai-kts ](https://github.com/iTXTech/mirai-kts )
supports plugins using Kotlin Scripts (`kts`)( **OpenJDK 8+ only, except
Android**)
2020-07-26 15:04:28 +08:00
- Native languages like `C` , `C++` : [mirai-native ](https://github.com/iTXTech/mirai-native ) supports plugins from CoolQ ** (`Windows JREx86` only / with `Wine` )**
- `JavaScript` : [mirai-js ](https://github.com/iTXTech/mirai-js ) supports plugins using `JavaScript` and inter-operate with **mirai** on JVM directly.
- Any language: Use HTTP API from [mirai-api-http ](https://github.com/mamoe/mirai-api-http )
2020-05-19 19:29:22 +08:00
2020-07-26 15:11:12 +08:00
**Though only Jar plugins are supported officially, language bridges that are maintained by the community can connect with your knowledge.**:
2020-05-19 19:29:22 +08:00
2020-07-26 15:04:28 +08:00
- `Python` : [python-mirai ](https://github.com/NatriumLab/python-mirai ) A Bot framework based on `mirai-api-http` .
- `JavaScript` (`Node.js`): [node-mirai ](https://github.com/RedBeanN/node-mirai ) The Node.js SDK for mirai.
- `Go` : [gomirai ](https://github.com/Logiase/gomirai ) The GoLang SDK for mirai.
- `Mozilla Rhino` : [mirai-rhinojs-sdk ](https://github.com/StageGuard/mirai-rhinojs-sdk ) The Mozilla Rhino (JavaScript) SDK for mirai.
2020-09-15 06:55:48 +08:00
- `Lua` : [lua-mirai ](https://github.com/only52607/lua-mirai ) The Lua SDK for mirai-core, supporting Java extensions that act as a bridge between Java and native Lua.
2021-03-22 09:06:01 +08:00
- `C++` : [miraiCP ](https://github.com/Nambers/MiraiCP ) A C++ SDK using the `JNI` technique to connect the Mirai.
2020-07-26 15:04:28 +08:00
- `C++` : [mirai-cpp ](https://github.com/cyanray/mirai-cpp ) A simple C++ SDK using `mirai-api-http` for ALL platforms.
- `C++` : [miraipp ](https://github.com/Chlorie/miraipp-template ) A sophisticated, modern mapping for `mirai-http-api` to C++, providing development documents.
- `Rust` : [mirai-rs ](https://github.com/HoshinoTented/mirai-rs ) The Rust mapping for `mirai-http-api` .
- `TypeScript` : [mirai-ts ](https://github.com/YunYouJun/mirai-ts ) TypeScript SDK comes with a declaration file, has good code hints, and can also be used as a JavaScript SDK.
2020-05-19 19:29:22 +08:00
### Use as a library
2019-12-05 20:12:51 +08:00
You can install mirai as a library into your project.
2020-05-19 19:29:22 +08:00
#### Import with Gradle
Mirai is only published on `jcenter` , therefore please ensure you have the `jcenter()` repository added in your `build.gradle` .
2020-02-21 11:55:14 +08:00
2019-12-05 20:12:51 +08:00
```kotlin
repositories{
jcenter()
}
```
2020-05-19 19:29:22 +08:00
Then add dependency to `dependencies` block, following:
If your project is a multiplatform project, you need to add dependencies for each platform respectively.
If your project is not a multiplatform project, add the platform-specific dependency only.
2019-12-05 20:12:51 +08:00
2020-05-19 19:29:22 +08:00
Replace `VERSION` with the newest version, say [![Download ](https://api.bintray.com/packages/him188moe/mirai/mirai-core/images/download.svg )](https://bintray.com/him188moe/mirai/mirai-core/)
2020-02-21 11:55:14 +08:00
2020-05-19 19:29:22 +08:00
**jvm**
2019-12-05 20:12:51 +08:00
```kotlin
2020-05-19 19:29:22 +08:00
implementation("net.mamoe:mirai-core:VERSION")
2019-12-05 20:12:51 +08:00
```
2020-05-19 19:29:22 +08:00
**common**
2019-12-05 20:12:51 +08:00
```kotlin
2020-05-19 19:29:22 +08:00
implementation("net.mamoe:mirai-core-common:VERSION")
2019-12-05 20:12:51 +08:00
```
**android**
```kotlin
implementation("net.mamoe:mirai-core-android:VERSION")
```
2020-05-19 19:29:22 +08:00
#### Import with Maven
2019-12-05 20:12:51 +08:00
2020-05-19 19:29:22 +08:00
```xml
< repositories >
< repository >
< id > jcenter< / id >
< url > https://jcenter.bintray.com/< / url >
< / repository >
< / repositories >
2019-12-05 20:12:51 +08:00
```
2020-05-19 19:29:22 +08:00
```xml
< dependencies >
< dependency >
< groupId > net.mamoe< / groupId >
< artifactId > mirai-core-qqandroid< / artifactId >
2020-07-26 15:06:07 +08:00
< version > 0.23.0< / version > <!-- Replace to the newest -->
2020-05-19 19:29:22 +08:00
< / dependency >
< / dependencies >
```
2019-12-05 20:12:51 +08:00
## Contribution
2020-05-19 19:29:22 +08:00
**All kinds of contributions are welcomed.**
2020-09-15 06:55:48 +08:00
If you hold an interest in helping us implementing Mirai on JS, iOS or Native platforms, please email us `support@mamoe.net` .
2020-05-19 19:29:22 +08:00
If you meet any problem or have any questions, feel free to file an issue. Our goal is to make Mirai easy to use.
2019-12-05 20:12:51 +08:00
2020-02-21 11:55:14 +08:00
## Acknowledgements
Thanks to [JetBrains ](https://www.jetbrains.com/?from=mirai ) for allocating free open-source licences for IDEs such as [IntelliJ IDEA ](https://www.jetbrains.com/idea/?from=mirai ).
[<img src=".github/jetbrains-variant-3.png" width="200"/> ](https://www.jetbrains.com/?from=mirai )
## License
2020-01-14 22:09:15 +08:00
2021-01-31 11:20:15 +08:00
Copyright (C) 2019-2021 Mamoe Technologies and mirai contributors
2020-02-21 11:55:14 +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.
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.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see < http: / / www . gnu . org / licenses / > .