初始提交 - FutureOSS v1.0 插件化运行时框架

一切皆为插件的开发者工具运行时框架

🧩 核心特性:
  - 插件热插拔 (importlib 动态加载)
  - 依赖自动解析 (拓扑排序 + 循环检测)
  - 企业级稳定 (熔断/降级/重试/隔离)
  - 事件驱动 (发布/订阅事件总线)
  - 完整配置 (YAML 配置 + 热重载)
This commit is contained in:
Falck
2026-04-06 09:57:10 +08:00
commit 76147bae94
174 changed files with 15626 additions and 0 deletions

56
oss/cli.py Normal file
View File

@@ -0,0 +1,56 @@
"""CLI 入口"""
import click
import signal
from oss import __version__
from oss.logger.logger import Logger
from oss.plugin.manager import PluginManager
@click.group()
def cli():
"""Future OSS - 一切皆为插件"""
pass
@cli.command()
def serve():
"""启动 Future OSS"""
log = Logger()
log.info(f"Future OSS {__version__} 启动")
plugin_mgr = PluginManager()
plugin_mgr.load()
plugin_mgr.start()
log.info("就绪")
def shutdown(sig, frame):
log.info("停止中...")
plugin_mgr.stop()
log.info("已停止")
raise SystemExit(0)
signal.signal(signal.SIGINT, shutdown)
signal.signal(signal.SIGTERM, shutdown)
try:
signal.pause()
except AttributeError:
import time
while True:
time.sleep(1)
@cli.command()
def version():
"""显示版本"""
click.echo(f"Future OSS {__version__}")
def main():
cli()
if __name__ == "__main__":
main()