跳到主内容

v0.45.0 版本说明

版本说明

EnerOS v0.45.0 版本说明

  • 发布日期:2026-07-01
  • 版本代号:Eco
  • 支持状态:稳定(Stable)
  • Crate 总数:54
  • 测试用例数:7000+
  • 贡献者:35 人

版本概述

EnerOS v0.45.0 是「成熟优化」阶段的第五个版本,聚焦生态扩展。一个操作系统的价值不仅取决于其内核能力,更取决于围绕它构建的生态体系是否繁荣。本版本围绕合作伙伴集成、第三方插件认证、解决方案模板与应用市场四个方向,构建了 EnerOS 生态的四大支柱。

在前四个版本完成了性能基准、安全审计、开发者体验与文档系统后,EnerOS 本身已具备生产可用的工程基础。v0.45.0 将 EnerOS 从一个「产品」推向一个「平台」,通过开放插件接口、认证体系与应用分发渠道,吸引合作伙伴与第三方开发者在 EnerOS 之上构建垂直行业应用。

本版本新增 eneros-marketplace crate 提供应用市场后端,新增 eneros-plugin-sdk 提供第三方插件开发工具包,并发布了 8 家合作伙伴的首批 24 个认证插件与 15 套解决方案模板,覆盖发电、输电、配电、调度、营销、安全等电力全业务链。

关键数据

指标数值说明
Crate 数量54新增 eneros-marketplace 等 2 个 crate
测试用例7000+含插件兼容性测试
认证插件24 个8 家合作伙伴
解决方案模板15 套全业务链覆盖
应用市场应用数42 个首批上架
插件 SDK 下载量1200+发布首周
合作伙伴8 家含南瑞、许继、四方等

新特性

1. 合作伙伴集成

EnerOS 与 8 家电力行业核心合作伙伴完成深度集成,合作伙伴的设备模型、协议栈与分析工具通过标准化的适配层接入 EnerOS 内核,用户可在 EnerOS 中直接使用这些合作伙伴的能力。

合作伙伴与集成内容

合作伙伴集成内容认证等级状态
南瑞继保继电保护模型、IEC 61850 IED金牌已认证
许继电气直流输电模型、柔性直流金牌已认证
北京四方故障录波、SOE 事件银牌已认证
积成电子配电终端、DTU/FTU银牌已认证
长园深瑞配电网自动化、馈线终端银牌已认证
国电南自发电机励磁、PSS 模型银牌已认证
思源电气开关设备模型、GIS铜牌已认证
远光软件电力营销、计费接口铜牌已认证

适配层架构

use eneros_eco::adapter::{PartnerAdapter, AdapterConfig};
use eneros_eco::partners::{Nari, XjElectric};

// 加载南瑞继保适配器
let nari_adapter = PartnerAdapter::new(Nari, AdapterConfig {
    models_path: "partners/nari/models/",
    protocol: "iec61850",
    certification: "gold",
});

// 注册继电保护模型
nari_adapter.register_device_models().await?;
nari_adapter.register_ied_types().await?;

// 在 EnerOS 中直接使用
let relay = ctx.syscall(GetDeviceModel {
    type_id: "nari-relay-PCS-931",
}).await?;

2. 第三方插件认证

新增 eneros-plugin-sdk 与插件认证体系。第三方开发者可基于 SDK 开发插件,提交认证后由 EnerOS 核心团队进行安全审查、兼容性测试与性能基准评估,通过认证的插件可上架应用市场。

认证等级

等级要求权限标识
金牌安全审计通过 + 100% 兼容性 + 性能达标内核态访问 + 全部系统调用Verified Gold
银牌安全审查通过 + 95% 兼容性用户态访问 + 受限系统调用Verified Silver
铜牌基础安全检查 + 90% 兼容性用户态访问 + 基础系统调用Verified Bronze
未认证自行开发,未经审查沙箱隔离 + 最小权限Community

插件 SDK 使用

use eneros_plugin_sdk::{Plugin, PluginContext, PluginResult, PluginManifest};

// 定义插件清单
let manifest = PluginManifest::new("my-fault-analyzer")
    .version("1.0.0")
    .author("My Company")
    .description("故障分析插件")
    .permissions(vec![
        Permission::ReadTopology,
        Permission::ReadTimeseries,
        Permission::WriteReport,
    ])
    .api_version("0.45");

// 实现插件
pub struct FaultAnalyzer;

impl Plugin for FaultAnalyzer {
    fn manifest(&self) -> &PluginManifest { &manifest }

    async fn init(&mut self, ctx: &mut PluginContext) -> PluginResult<()> {
        ctx.log_info("故障分析插件初始化完成");
        Ok(())
    }

    async fn handle_event(&mut self, event: Event, ctx: &mut PluginContext) -> PluginResult<()> {
        match event {
            Event::FaultDetected { location, type_ } => {
                let topology = ctx.syscall(GetTopology).await?;
                let analysis = self.analyze(location, type_, &topology)?;
                ctx.emit_report(analysis).await?;
            }
            _ => {}
        }
        Ok(())
    }
}

// 注册插件
plugin_sdk::register_plugin!(FaultAnalyzer);

插件沙箱

未认证插件在 WASM 沙箱中运行,通过 capabilities 模型限制权限。沙箱提供 CPU 时间片限制、内存上限与系统调用过滤,确保未认证插件不会影响系统稳定性。

use eneros_plugin_sdk::sandbox::{Sandbox, SandboxConfig};

let sandbox = Sandbox::new(SandboxConfig {
    max_memory_mb: 256,
    max_cpu_time_ms: 1000,
    max_filesystem_mb: 100,
    allowed_syscalls: vec!["read", "write", "clock_gettime"],
    network_access: false,
});

sandbox.run_plugin("community/analyzer.wasm")?;

3. 解决方案模板

发布 15 套解决方案模板,每套模板包含完整的架构设计文档、Agent 实现、部署配置与运维手册,覆盖电力行业典型业务场景。模板可直接作为项目起点,大幅缩短项目交付周期。

模板列表

模板场景包含组件交付周期
省级调度省级电网调度自动化调度 Agent + OPF + N-18 周
地市调度地市级配电调度调度 Agent + 馈线自动化6 周
变电站智能变电站IEC 61850 + 保护协调4 周
配电网配电自动化FA + 故障定位 + 隔离6 周
微电网微电网管理岛检测 + 并离网 + 储能5 周
新能源风光电站监控预测 + 出力控制 + AGC5 周
储能储能电站管理BMS + PCS + 调度4 周
充电桩电动汽车充电网络负荷管理 + 计费 + 有序充电4 周
虚拟电厂VPP 聚合运营聚合 + 调度 + 交易6 周
需求响应负荷需求响应负荷聚合 + 响应策略5 周
电力交易电力市场交易报价 + 出清 + 结算6 周
安全监控网络安全监控审计 + 入侵检测 + 告警4 周
数字孪生电网数字孪生孪生 + 状态估计 + 回放8 周
故障诊断智能故障诊断诊断 + 保护协调 + 自愈5 周
营销电力营销计费 + 客服 + 计量5 周

模板使用

# 基于解决方案模板创建项目
eneros-cli project new my-vpp --solution virtual-power-plant

# 生成完整项目结构
# my-vpp/
# ├── docs/              # 架构设计文档
# │   ├── architecture.md
# │   └── deployment.md
# ├── src/
# │   ├── agents/        # Agent 实现
# │   ├── models/        # 业务模型
# │   └── config.rs
# ├── tests/
# ├── deploy/
# │   ├── docker-compose.yml
# │   └── helm/
# └── ops/
#     ├── runbook.yml    # 运维手册
#     └── monitors/      # 监控配置

4. 应用市场

新增 eneros-marketplace crate,提供应用市场后端服务。开发者可发布插件、模板与完整应用,用户可搜索、安装、更新与卸载。应用市场支持版本管理、依赖解析与签名验证。

市场架构

eneros-marketplace/
├── src/
│   ├── registry/         # 应用注册表
│   │   ├── catalog.rs    # 目录管理
│   │   ├── version.rs    # 版本管理
│   │   └── signing.rs    # 签名验证
│   ├── search/           # 搜索引擎
│   │   ├── index.rs      # 全文索引
│   │   └── ranking.rs    # 排序算法
│   ├── install/          # 安装器
│   │   ├── resolver.rs   # 依赖解析
│   │   └── downloader.rs # 下载器
│   └── api/              # REST API
└── web/                  # 市场前端

发布应用

use eneros_marketplace::{Publisher, AppPackage, AppMetadata};

let publisher = Publisher::new("my-company")
    .signing_key("keys/company.pem");

let app = AppPackage::new(AppMetadata {
    name: "advanced-fault-analyzer".into(),
    version: "1.2.0".into(),
    description: "高级故障分析工具,支持波形识别与保护协调".into(),
    category: Category::Analysis,
    certification: Certification::Silver,
    price: Price::Free,
    min_eneros_version: "0.45".into(),
});

publisher.publish(app, "dist/analyzer-1.2.0.tar.gz").await?;

安装应用

# 搜索应用
eneros-cli marketplace search "故障分析"

# 安装应用
eneros-cli marketplace install advanced-fault-analyzer

# 查看已安装应用
eneros-cli marketplace list --installed

# 更新应用
eneros-cli marketplace update --all
// 编程式安装
use eneros_marketplace::{Marketplace, InstallOptions};

let market = Marketplace::connect("https://market.eneros.io")?;

market.install("advanced-fault-analyzer", InstallOptions {
    version: Requirement::Latest,
    auto_start: true,
    config: Default::default(),
}).await?;

改进优化

插件加载性能

插件加载从同步阻塞改为异步流式加载,大型插件的冷启动时间从 800ms 降至 200ms。

市场搜索

应用市场搜索引入基于嵌入的语义搜索,支持自然语言查询。例如搜索「能帮我分析电网故障的工具」可返回故障诊断类应用。

插件依赖解析

依赖解析器从简单的版本匹配升级为 SAT 求解器,能处理复杂的依赖冲突与版本约束。

Bug 修复

  • BG-601:插件在卸载后残留配置文件,已增加清理钩子
  • BG-605:市场搜索在中文关键词下结果不准确,已优化分词
  • BG-609:合作伙伴适配器在模型版本不一致时崩溃,已增加版本协商
  • BG-613:沙箱插件在内存达到上限时未优雅退出,已改为 OOM 告警 + 降级
  • BG-617:解决方案模板的 Helm Chart 在 K8s 1.28 上兼容性问题,已修复

破坏性变更

BC-241:插件 API 版本化

插件接口引入显式 API 版本声明,未声明版本的插件按 v0.40 兼容模式运行,将在 v0.48.0 移除兼容模式。

BC-242:eneros-plugin-sdk trait 方法变更

Plugin trait 新增 on_config_change 方法(默认空实现),自定义插件需按需实现。

依赖升级

依赖旧版本新版本说明
wasmtime14.015.0沙箱运行时
reqwest0.110.12市场 HTTP 客户端
semver1.01.0.22版本解析

升级指南

从 v0.44.0 升级

cargo update
cargo test --workspace

安装插件 SDK:

[dependencies]
eneros-plugin-sdk = "0.45"
eneros-marketplace = "0.45"

启用应用市场客户端:

eneros-cli marketplace login
eneros-cli marketplace search "dispatch"

相关文档