<p align="center">
  <a href="#">
    <img src="https://raw.githubusercontent.com/OlivOS-Team/OlivOS/main/resource/OlivOS_EA_SIP.jpg" width="384" height="216" alt="">
  </a>
</p>

<div align="center">

# OlivOS

**青果核心交互栈**  
**Witness Union / 见证联合**  

  <a href="https://github.com/botuniverse/onebot">
    <img src="https://img.shields.io/badge/OneBot-v11-black?logo=data:image/png;base64, " alt="action">
  </a>
  <a href="https://github.com/botuniverse/onebot">
    <img src="https://img.shields.io/badge/OneBot-v12-black?logo=data:image/png;base64, " alt="action">
  </a>
  <a href="https://github.com/OlivOS-Team/OlivOS/actions">
    <img src="https://github.com/OlivOS-Team/OlivOS/actions/workflows/build.yml/badge.svg" alt="action">
  </a>
  <a href="https://pypi.python.org/pypi/olivos">
    <img src="https://img.shields.io/pypi/v/olivos" alt="PyPI">
  </a>
  <a href="https://github.com/OlivOS-Team/OlivOS/releases">
    <img src="https://img.shields.io/github/downloads/OlivOS-Team/OlivOS/total.svg" alt="Downloads">
  </a>

  <p align="center">
    <a href="https://doc.olivos.wiki/">文档</a>
    ·
    <a href="https://forum.olivos.run/">论坛</a>
    ·
    <a href="https://github.com/OlivOS-Team/OlivOS/releases">下载</a>
    ·
    <a href="https://afdian.net/a/OlivOS">赞助</a>
  </p>

</div>

## 兼容
[![OnebotV11](https://img.shields.io/badge/-OnebotV11-111111?style=flat-square&logoColor=white)](https://github.com/botuniverse/onebot)
[![OnebotV12](https://img.shields.io/badge/-OnebotV12-111111?style=flat-square&logoColor=white)](https://github.com/botuniverse/onebot)
[![RED](https://img.shields.io/badge/-RED-111111?style=flat-square&logoColor=white)](https://chrononeko.github.io/QQNTRedProtocol/)
[![QQ](https://img.shields.io/badge/-QQ-EB1923?style=flat-square&logo=Tencent%20QQ&logoColor=white)](https://im.qq.com/index/)
[![NapCat](https://img.shields.io/badge/-NapCat-EB1923?style=flat-square&logo=Tencent%20QQ&logoColor=white)](https://github.com/NapNeko/NapCatQQ)
[![Go-CQHttp](https://img.shields.io/badge/-GoCQHttp-EB1923?style=flat-square&logo=Tencent%20QQ&logoColor=white)](https://github.com/Mrs4s/go-cqhttp)
[![Walle-Q](https://img.shields.io/badge/-WalleQ-EB1923?style=flat-square&logo=Tencent%20QQ&logoColor=white)](https://github.com/onebot-walle/walle-q)
[![WeChat](https://img.shields.io/badge/-WeChat-07C160?style=flat-square&logo=wechat&logoColor=white)](https://weixin.qq.com/)
[![ComWeChatBotClient](https://img.shields.io/badge/-ComWeChatBotClient-07C160?style=flat-square&logo=wechat&logoColor=white)](https://github.com/JustUndertaker/ComWeChatBotClient)
[![QQ全域](https://img.shields.io/badge/-QQ%E5%85%A8%E5%9F%9F-EB1923?style=flat-square&logo=Tencent%20QQ&logoColor=white)](https://bot.q.qq.com/wiki/)
[![QQ频道](https://img.shields.io/badge/-QQ%E9%A2%91%E9%81%93-EB1923?style=flat-square&logo=Tencent%20QQ&logoColor=white)](https://bot.q.qq.com/wiki/)
[![DingTalk](https://img.shields.io/badge/-%E9%92%89%E9%92%89-007FFF?style=flat-square&logo=alibabadotcom&logoColor=white)](https://open.dingtalk.com/)
[![Discord](https://img.shields.io/badge/-Discord-6666CC?style=flat-square&logo=Discord&logoColor=white)](https://discord.com/)
[![Bilibili](https://img.shields.io/badge/-Bilibili-FB7299?style=flat-square&logo=Bilibili&logoColor=white)](http://www.bilibili.com/)
[![Telegram](https://img.shields.io/badge/-Telegram-26A5E4?style=flat-square&logo=Telegram&logoColor=white)](https://telegram.org/)
[![KOOK](https://img.shields.io/badge/-%E5%BC%80%E9%BB%91%E5%95%A6KOOK-83E700?style=flat-square&logo=Discord&logoColor=white)](https://www.kookapp.cn/)
[![大别野](https://img.shields.io/badge/-%E7%B1%B3%E6%B8%B8%E7%A4%BE%E5%A4%A7%E5%88%AB%E9%87%8E-59DBFC?style=flat-square&logoColor=white)](https://open.miyoushe.com/)
[![Dodo](https://img.shields.io/badge/-Dodo-00B8AA?style=flat-square&logo=%2Fe%2F&logoColor=white)](https://dodo.link/)
[![Fanbook](https://img.shields.io/badge/-Fanbook-1A52F3?style=flat-square&logo=sharp&logoColor=white)](https://fanbook.mobi/)
[![Hack.Chat](https://img.shields.io/badge/-Hack.Chat-20201D?style=flat-square&logo=Hetzner&logoColor=white)](https://hack.chat/)
[![FF14ACT](https://img.shields.io/badge/-FF14ACT-ED1C24?style=flat-square&logo=squareenix&logoColor=white)](https://advancedcombattracker.com/download.php)

> *排名不分先后*

## 概述
**OlivOS 青果核心交互栈**，一个将各类涉及异步文本流交互的场景（即时通讯、直播弹幕、网络聊天室、静态命令行应用程序）转换到统一框架，基于统一流量管理、负载均衡、业务处理机制进行服务，以期在这些交互逻辑与功能需求类似的场景获得**更加灵活的部署方式**、**更加有效的开发模式**以及**更加合理的资源调度**。  

## 方针
技术路线上，基于Python、采用模块化框架、进程分离、消息队列通信、前后端分离、响应式布局、渐进式渲染的基本思路，实现一个高并发性、高可靠性、高适应性的整体方案。

## 欢迎点击Star，这对我们将带来很大的支持！
[![Star History Chart](https://api.star-history.com/svg?repos=OlivOS-Team/OlivOS&type=Date)](https://star-history.com/#OlivOS-Team/OlivOS&Date)


## 开始使用
### 发布版本
#### Windows
我们推荐`Windows`用户直接使用经过二进制编译的发布版本，你可以在这里获取最新版本：[releases](https://github.com/OlivOS-Team/OlivOS/releases)

### 源码版本
请确保你已经安装了Python3以及git，当前我们主要使用`3.7.5`以及`3.11.0`两个版本的Python。  

+ 首先，克隆本项目的源码  
```bash
git clone https://github.com/OlivOS-Team/OlivOS
cd OlivOS
```
+ 安装依赖环境
```bash
pip install -r requirements310_pure.txt
```
对于`3.7.5`版本的Python，有单独提供的依赖描述文件
```bash
pip install -r requirements_pure.txt
```
+ 启动环境
```
python main.py
```

### Pypi版本
OlivOS的核心组件部分已经被充分集成，并作为Pypi库进行了发布，你同样也可以使用`pip`来获取这个版本并将OlivOS作为库加以使用。  
要获取最新版本的OlivOS库，你需要
```bash
pip install olivos
```
以下是一个简单的OlivOS启动示例代码
```python
import OlivOS

if __name__ == '__main__':
    OlivOSTarget = OlivOS.bootAPI.Entity()
    OlivOSTarget.start()
```

## 插件
请参考插件默认模板[OlivOSPluginTemplate](https://github.com/OlivOS-Team/OlivOSPluginTemplate)和[官方文档](https://doc.olivos.wiki)进行插件开发。

## 许可证

    Copyright (C) 2019-2021 lunzhiPenxil and OlivOS Team and contributors.

    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/>.

`OlivOS` 采用 `AGPLv3` 协议开源。为了整个社区的良性发展，我们**强烈建议**您做到以下几点（此声明继承自[Mirai](https://github.com/mamoe/mirai)）：

- **间接接触（包括但不限于使用 `Http API` 或 跨进程技术）到 `OlivOS` 的软件使用 `AGPLv3` 开源**

### **OlivOS 的形象图及项目图标都拥有著作权保护。**
**在未经过允许的情况下，任何人都不可以使用形象图和图标，或本文初的有关 OlivOS 名称来历的介绍原文，用于商业用途或是放置在项目首页，或其他未许可的行为。**

### 衍生软件需声明引用

- 若引用 OlivOS 发布的软件包而不修改 OlivOS，则衍生项目需在描述的任意部位提及使用 OlivOS。
- 若修改 OlivOS 源代码再发布，**或参考 OlivOS 内部实现发布另一个项目**，则衍生项目必须在**文章首部**或 'OlivOS' 相关内容**首次出现**的位置**明确声明**来源于本仓库 (`https://github.com/OlivOS-Team/OlivOS`)。不得扭曲或隐藏免费且开源的事实。

## 特别声明
有[CSDN旗下GitCode被曝批量搬运Github项目](https://tech.ifeng.com/c/8ako6om7AC7)的珠玉在前，本项目特别在此声明，本项目的官方源代码仅在以下平台发布：  

+ [Github - OlivOS-Team/OlivOS](https://github.com/OlivOS-Team/OlivOS)

任何未经本仓库所属的组织允许的超出以上代码托管平台的冒充行为，都是未授权的，请警惕。
