Mirai is able to run as plugin-supported framework.
Mirai is building a community (with `mirai-console`) that allows developers to share their plugins, and for users to install plugins quickly.
- (Official) `Java` or `Kotlin`: Make Jar plugin for [mirai-console](https://github.com/mamoe/mirai-console) directly and share with other developers through the plugin center.
- (Official) Native languages like `C`, `C++`: [mirai-native](https://github.com/iTXTech/mirai-native) supports plugins from CoolQ **(`Windows JREx86` only / with `Wine`)**
- (Official) `JavaScript`: [mirai-js](https://github.com/iTXTech/mirai-js) supports plugins using `JavaScript` and inter-operate with **mirai** on JVM directly.
- (Official) Any language:Use HTTP API from [mirai-api-http](https://github.com/mamoe/mirai-api-http)
**Though only Jar plugins are supported officially, you can use these bridges that are created and maintained by the community**:
- (Community)`Python`: [python-mirai](https://github.com/NatriumLab/python-mirai) A Bot framework based on `mirai-api-http`.
- (Community)`JavaScript`(`Node.js`): [node-mirai](https://github.com/RedBeanN/node-mirai) The Node.js SDK for mirai.
- (Community)`Go`: [gomirai](https://github.com/Logiase/gomirai) The GoLang SDK for mirai.
- (Community)`Mozilla Rhino`: [mirai-rhinojs-sdk](https://github.com/StageGuard/mirai-rhinojs-sdk) The Mozilla Rhino (JavaScript) SDK for mirai.
- (Community)`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 natrive Lua.
- (Community)`C++`: [mirai-cpp](https://github.com/cyanray/mirai-cpp) A simple C++ SDK using `mirai-api-http` for ALL platforms.
- (Community)`C++`: [miraipp](https://github.com/Chlorie/miraipp-template) A sophisticated, modern mapping for `mirai-http-api` to C++, providing development documents.
- (Community)`Rust`: [mirai-rs](https://github.com/HoshinoTented/mirai-rs) The Rust mapping for `mirai-http-api`.
### Use as a library
You can install mirai as a library into your project.
Mirai is only published on `jcenter`, therefore please ensure you have the `jcenter()` repository in your `build.gradle`.
#### Import with Gradle
Mirai is only published on `jcenter`, therefore please ensure you have the `jcenter()` repository added in your `build.gradle`.
```kotlin
repositories{
...
...
@@ -22,88 +47,59 @@ repositories{
}
```
If your project is a multiplatform project, you should add dependencies for each platform respectively.
If your project is not a multiplatform project, you just need to add the platform-specific dependency.
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.
`VERSION` should be replaced 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/)
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/)
Mirai is still under experimental stage, it is suggested to keep the version newest.
3. Run demo main functions: [mirai-demo](#mirai-demo)
```xml
<dependencies>
<dependency>
<groupId>net.mamoe</groupId>
<artifactId>mirai-core-qqandroid</artifactId>
<version>0.23.0</version><!-- 替换版本为最新版本 -->
</dependency>
</dependencies>
```
## Contribution
Any kinds of contribution is welcomed. If you hold a interest in helping us implementing Mirai on JS, iOS or Native platforms, please email me `Him188@mamoe.net`
If you meet any problem or have any questions, be free to open a issue. Our goal is to make Mirai easy to use.
## Requirements
Kotlin 1.3.61
On JVM: Java 6
On Android: SDK 15
### Using java
Q: Can I use Mirai without Kotlin?
A: Calling from java is not yet supported. Coroutines, extensions and inlines, which are difficult to use from Java, are generally used in Mirai. Therefore you should have the skill of Kotlin before you use Mirai.
**All kinds of contributions are welcomed.**
If you hold a interest in helping us implementing Mirai on JS, iOS or Native platforms, please email us `support@mamoe.net`.
If you meet any problem or have any questions, feel free to file an issue. Our goal is to make Mirai easy to use.
## 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).