<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%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、采用模块化框架、进程分离、消息队列通信、前后端分离、响应式布局、渐进式渲染的基本思路，实现一个高并发性、高可靠性、高适应性的整体方案。

## 开始使用
### 发布版本
#### 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` 协议开源。为了整个社区的良性发展，我们**强烈建议**您做到以下几点：

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

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

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

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