puniyu_registry

Crates.iopuniyu_registry
lib.rspuniyu_registry
version0.7.9
created_at2025-10-24 16:33:14.598846+00
updated_at2026-01-12 06:54:21.871345+00
descriptionpuniyu 的注册中心模块
homepagehttps://github.com/puniyu/puniyu
repositoryhttps://github.com/puniyu/puniyu
max_upload_size
id1898772
size136,917
wuliya (shiwuliya)

documentation

README

puniyu_registry

puniyu 注册表管理模块

概述

puniyu_registry 是 puniyu 项目中负责管理各种组件注册表的核心库。它提供了适配器、插件、任务和命令的注册、加载、卸载和查询功能,是整个 puniyu 生态系统中组件管理的中心枢纽。

核心功能

适配器注册表 (AdapterRegistry)

管理适配器的加载和注册:

  • 支持从文件路径或构建器加载适配器
  • 自动检查 ABI 版本兼容性
  • 管理适配器的生命周期
  • 提供适配器查询接口

主要方法:

  • load_adapter: 加载单个适配器
  • load_adapters: 批量加载适配器
  • get_adapter: 获取指定适配器
  • get_all_adapters: 获取所有适配器

插件注册表 (PluginRegistry)

管理插件的加载和注册:

  • 支持动态链接库和静态插件加载
  • 自动注册插件中的任务和命令
  • 管理插件的生命周期
  • 提供插件查询和卸载接口

主要方法:

  • load_plugin: 加载单个插件
  • load_plugins: 批量加载插件
  • unload_plugin: 卸载指定插件
  • get_plugin: 获取指定插件
  • get_all_plugins: 获取所有插件

任务注册表 (TaskRegistry)

管理定时任务的注册和调度:

  • 将任务注册到定时调度器
  • 管理任务的生命周期
  • 提供任务查询和移除接口

主要方法:

  • add_task: 添加任务到调度器
  • remove_task: 从调度器移除任务
  • get_all_tasks: 获取所有已注册任务

命令注册表 (CommandRegistry)

管理命令的注册和查询(重新导出自 puniyu_command):

  • 提供命令的增删查改功能
  • 支持按名称、ID、插件等维度查询命令

存储管理

AdapterStore

适配器存储管理器:

  • 使用 HashMap<String, Adapter> 存储适配器
  • 提供线程安全的适配器存取接口

PluginStore

插件存储管理器:

  • 使用 HashMap<u64, Plugin> 存储插件
  • 支持按索引和名称查询插件
  • 自动管理插件关联的任务和命令

TaskStore

任务存储管理器:

  • 使用 HashMap<u64, Arc<Task>> 存储任务
  • 管理任务与插件的关联关系
  • 提供任务的增删查改功能

错误处理

定义了专门的错误类型:

  • Adapter 错误:适配器不存在、已存在、初始化失败等
  • Plugin 错误:插件不存在、已存在、初始化失败等

特性

  • 模块化设计:通过特性功能分离不同组件的管理
  • 线程安全:使用 ArcMutexRwLock 等确保线程安全
  • 生命周期管理:完整的组件加载、卸载和清理机制
  • 版本兼容性检查:自动检查 ABI 版本兼容性
  • 日志记录:详细的加载和错误日志记录

许可证

本项目采用 LGPL 许可证。

Commit count: 314

cargo fmt