跳到主内容

Crate 索引

Crate 索引

Crate 索引

EnerOS 由 56 个 Rust crate 组成,分为 10 个功能类别。所有 crate 共享 eneros-core 提供的统一类型与错误模型,确保跨模块类型一致、零拷贝传递。整个工程以 Cargo workspace 组织,单一版本号(当前 0.47.0)统一发布,避免子模块版本漂移。

设计原则

EnerOS 的 crate 划分遵循以下原则:

  • 单一职责:每个 crate 仅承担一个明确领域,便于独立测试与替换
  • 依赖单向:依赖只能从上层指向下层,禁止循环依赖,编译顺序确定
  • 零拷贝传递:跨 crate 数据传递使用 Arc<T> / &T,避免序列化开销
  • feature 粒度:每个 crate 通过 Cargo feature 暴露可选能力,按需启用以减小二进制体积
  • 稳定性分层:核心层 API 标注 stable,电力内核标注 beta,应用层标注 experimental

分类总览

类别数量关键 crate说明
核心层2eneros-core、eneros-linalg统一类型、稀疏线性代数
电力内核7eneros-topology、eneros-powerflow拓扑、潮流、约束、设备、时序、事件总线
Agent 运行时5eneros-agent、eneros-reasoningAgent、记忆、工具、推理、AI
基础设施8eneros-os、eneros-gatewayOS、网关、设备、SCADA、网络、桥接、运行时、性能
协议适配8eneros-protocol-iec104、eneros-protocol-mqttIEC 61850/104/103、CDT、CoAP、DL/T 698、ICCP、LwM2M、MQTT、PMU
分析4eneros-analysis、eneros-twin状态估计/OPF/短路、EMTP、数字孪生、模拟器
安全4eneros-trust、eneros-audit零信任、IDS、审计、合规
运维5eneros-slo、eneros-aiopsSLO、AIOps、运维、多区域、多租户
可视化4eneros-dashboard、eneros-3d仪表盘、3D、自然语言、报表
国际化与插件9eneros-i18n、eneros-plugini18n、插件、SDK、边缘、IoT Hub、GraphQL、API、测试工具

合计 56 个 crate,类别数量与发布清单一致。

依赖图概览

┌─────────────────────────────────────────────────────────────┐
│  应用层                                                       │
│  eneros-dashboard  eneros-api  eneros-edge  eneros-3d        │
└─────────────────────────────────────────────────────────────┘
                          ↓
┌─────────────────────────────────────────────────────────────┐
│  Agent 运行时                                                 │
│  eneros-agent → memory / tool / reasoning / ai               │
└─────────────────────────────────────────────────────────────┘
                          ↓
┌─────────────────────────────────────────────────────────────┐
│  电力原生内核                                                  │
│  topology → powerflow → constraint → equipment → timeseries  │
│                          eventbus                            │
└─────────────────────────────────────────────────────────────┘
                          ↓
┌─────────────────────────────────────────────────────────────┐
│  核心层                                                       │
│  eneros-core (统一类型)    eneros-linalg (稀疏矩阵)            │
└─────────────────────────────────────────────────────────────┘
                          ↓
┌─────────────────────────────────────────────────────────────┐
│  基础设施                                                     │
│  eneros-os  eneros-gateway  eneros-device  eneros-scada      │
│  eneros-trust  eneros-audit  eneros-ids  eneros-compliance   │
└─────────────────────────────────────────────────────────────┘

依赖方向严格自上而下,下层不感知上层存在。详细依赖矩阵见 Crate 依赖关系 页面。

核心 Crate 详解

下表列出 EnerOS 最关键的 10 个 crate,对应本章节后续 10 篇文档:

Crate类别职责文档
eneros-core核心层统一类型、错误模型、全局配置查看
eneros-topology电力内核电网拓扑图建模与分析查看
eneros-powerflow电力内核Newton-Raphson 潮流求解查看
eneros-constraint电力内核安全约束校验与可行性投影查看
eneros-agentAgent 运行时Agent 生命周期与多智能体协作查看
eneros-gateway基础设施安全网关、命令执行、决策管线查看
eneros-api国际化与插件REST/GraphQL/WebSocket/SSE API 服务查看
eneros-dashboard可视化Web 仪表盘 + PWA查看
eneros-twin分析数字孪生引擎与 What-If 分析查看
eneros-trust安全零信任、mTLS、证书轮转查看

完整 Crate 列表

核心层(2 个)

Crate职责关键类型
eneros-core统一类型、错误、配置EnerOSError、EnerOSConfig、ElementId
eneros-linalg稀疏线性代数SparseMatrix、CsrMatrix、LU、Cholesky

电力内核(7 个)

Crate职责关键类型
eneros-topology电网拓扑图建模与分析NetworkGraph、TopologyEngine、Island
eneros-powerflowNewton-Raphson 潮流求解PowerFlowSolver、YBusMatrix、PowerFlowResult
eneros-constraint安全约束校验与可行性投影ConstraintEngine、Violation、FeasibilityProjector
eneros-equipment设备参数模型库EquipmentLibrary、TransformerModel、LineModel
eneros-cnpower中国配网一次设备参数库 + 合规检查器CnEquipmentLibrary、ComplianceChecker
eneros-timeseries时序数据存储与查询(SQLite 持久化)TimeSeriesEngine、Point、Query
eneros-eventbus事件驱动通信总线EventBus、Subscription、Event

Agent 运行时(5 个)

Crate职责关键类型
eneros-agentAgent 运行时与领域 AgentAgent、AgentContext、Orchestrator
eneros-memoryAgent 记忆系统MemoryStore、EpisodicMemory、SemanticMemory
eneros-toolAgent 工具引擎ToolRegistry、Tool、ToolResult
eneros-reasoning推理引擎(LLM + rig 集成)ReasoningEngine、Chain、Prompt
eneros-aiAI/ML 集成基础ModelRegistry、InferenceEngine

基础设施(8 个)

Crate职责关键类型
eneros-osOS 服务层OsService、ProcessSupervisor
eneros-gateway安全网关、命令执行、决策管线SafetyGateway、Command、Action
eneros-device设备通信与协议适配DeviceManager、DeviceChannel
eneros-scadaSCADA 数据采集(IEC 104 集成)ScadaGateway、DataPoint
eneros-network拓扑-潮流统一管线NetworkPipeline、PipelineStage
eneros-bridgePython 桥接(cnpower/pandapower)PythonBridge、PyHandle
eneros-runtime架构运行时RuntimeContext、RuntimeHandle
eneros-perf性能优化(arena/pool/ring_buffer)Arena、Pool、RingBuffer

协议适配(8 个)

Crate职责标准
eneros-protocol-cdtCDT 循环式远动协议DL/T 634 部颁规约
eneros-protocol-coapCoAPRFC 7252
eneros-protocol-dlt698DL/T 698.45 + DL/T 645DL/T 698 / DL/T 645
eneros-protocol-iccpICCP/TASE.2IEC 60870-6
eneros-protocol-iec103IEC 60870-5-103IEC 60870-5-103
eneros-protocol-lwm2mLwM2M 1.1OMA LwM2M 1.1
eneros-protocol-mqttMQTT 5.0 内置 brokerMQTT 5.0
eneros-protocol-pmuPMU/PDCIEEE C37.118

分析(4 个)

Crate职责关键类型
eneros-analysis状态估计/OPF/短路StateEstimator、OpfSolver、FaultAnalyzer
eneros-emtp电磁暂态仿真EmtpSolver、EmtpNetwork
eneros-twin数字孪生引擎TwinModel、WhatIfEngine、HistoryReplay
eneros-simulator场景脚本引擎与模拟器Scenario、Simulator

安全(4 个)

Crate职责关键类型
eneros-trust零信任(内部 CA + mTLS + 证书轮转)CaManager、CertManager、MtlsAcceptor
eneros-ids入侵检测IdsEngine、Signature、AnomalyDetector
eneros-audit统一审计(HMAC 签名 + 链式哈希 + WORM)AuditChain、AuditEntry
eneros-compliance合规自动化ComplianceChecker、Rule

运维(5 个)

Crate职责关键类型
eneros-sloSLO/SLI + 错误预算Slo、Sli、ErrorBudget
eneros-aiopsAIOps(告警聚类/根因分析/事件聚合)AlarmCluster、RootCauseAnalyzer
eneros-ops运维自动化OpsPipeline、Runbook
eneros-multiregion多区域高可用RegionRegistry、FailoverPolicy
eneros-tenant多租户隔离TenantManager、TenantId

可视化(4 个)

Crate职责关键类型
eneros-dashboardWeb 仪表盘 + PWADashboardServer、DashboardDef、WidgetDef
eneros-3d3D 场景与 glTF 2.0 导出Scene3D、GltfExporter
eneros-nl自然语言查询引擎NlQueryEngine、IntentParser
eneros-report报表与导出ReportGenerator、Template

国际化与插件(9 个)

Crate职责关键类型
eneros-i18n多语言翻译框架(Fluent + BCP 47)I18nBundle、Locale
eneros-plugin插件框架(Ed25519 签名 + seccomp 沙箱)PluginHost、PluginManifest
eneros-plugin-macros插件过程宏plugin_export!
eneros-sdk开发 SDKSdkClient、SdkBuilder
eneros-edge边缘计算EdgeNode、EdgeAgent
eneros-iot-hub传感器网络聚合IoTHub、SensorNode
eneros-graphqlGraphQL APIGraphQLSchema、QueryRoot
eneros-apiCLI / HTTP API 服务ApiServer、ApiClient、Cli
eneros-test-utils测试工具与混沌工程TestHarness、ChaosMonkey

Cargo Workspace 组织

EnerOS 使用单一 Cargo workspace 管理全部 56 个 crate,根 Cargo.toml 片段如下:

[workspace]
resolver = "2"
members = [
    "crates/core",
    "crates/linalg",
    "crates/topology",
    "crates/powerflow",
    "crates/constraint",
    "crates/equipment",
    "crates/cnpower",
    "crates/timeseries",
    "crates/eventbus",
    "crates/agent",
    "crates/memory",
    "crates/tool",
    "crates/reasoning",
    "crates/ai",
    "crates/os",
    "crates/gateway",
    "crates/device",
    "crates/scada",
    "crates/network",
    "crates/bridge",
    "crates/runtime",
    "crates/perf",
    "crates/protocol-cdt",
    "crates/protocol-coap",
    "crates/protocol-dlt698",
    "crates/protocol-iccp",
    "crates/protocol-iec103",
    "crates/protocol-lwm2m",
    "crates/protocol-mqtt",
    "crates/protocol-pmu",
    "crates/analysis",
    "crates/emtp",
    "crates/twin",
    "crates/simulator",
    "crates/trust",
    "crates/ids",
    "crates/audit",
    "crates/compliance",
    "crates/slo",
    "crates/aiops",
    "crates/ops",
    "crates/multiregion",
    "crates/tenant",
    "crates/dashboard",
    "crates/3d",
    "crates/nl",
    "crates/report",
    "crates/i18n",
    "crates/plugin",
    "crates/plugin-macros",
    "crates/sdk",
    "crates/edge",
    "crates/iot-hub",
    "crates/graphql",
    "crates/api",
    "crates/test-utils",
]

[workspace.package]
version = "0.47.0"
edition = "2021"
license = "Apache-2.0"
repository = "https://github.com/Gawg-AI/EnerOS"

[workspace.dependencies]
eneros-core = { path = "crates/core", version = "0.47.0" }
eneros-linalg = { path = "crates/linalg", version = "0.47.0" }
eneros-topology = { path = "crates/topology", version = "0.47.0" }
serde = { version = "1.0", features = ["derive"] }
tokio = { version = "1", features = ["full"] }
tracing = "0.1"
thiserror = "1.0"

选择 Crate 的指引

你想要……推荐入口 crate
创建自定义 Agenteneros-agent + eneros-tool + eneros-reasoning
触发潮流计算eneros-powerflow 或 eneros-api HTTP 端点
校验指令安全性eneros-constraint + eneros-gateway
接入 IEC 104 设备eneros-protocol-iec103 与 eneros-scada
构建监控大屏eneros-dashboard + eneros-timeseries
接入 PMU 数据流eneros-protocol-pmu + eneros-twin
多租户 SaaS 化eneros-tenant + eneros-multiregion
合规审计eneros-audit + eneros-compliance
自然语言查询eneros-nl + eneros-graphql
边缘部署eneros-edge + eneros-protocol-mqtt

版本与兼容性

EnerOS 全部 crate 共享 0.47.0 版本号,遵循语义化版本:

  • 0.x.0:minor 版本每季度发布,允许 API breaking change,迁移指南随发版说明提供
  • 0.47.x:patch 版本每周发布,仅含 bugfix 与新增非破坏性 API
  • LTS 版本:每年一次,提供 3 年安全更新

兼容性矩阵:

EnerOS 版本Rust 最低版本操作系统
0.47.x1.78Linux / macOS / Windows
0.46.x1.75Linux / macOS / Windows
0.45.x (LTS)1.72Linux / macOS

性能概览

EnerOS 在标准测试环境(4 核 / 8GB / Ubuntu 22.04)下端到端性能:

操作延迟涉及 crate
拓扑分析(1000 节点)< 1mseneros-topology
潮流计算(IEEE 14-bus)< 12mseneros-powerflow
约束校验(单条指令)< 10μseneros-constraint
时序写入< 1μseneros-timeseries
事件总线广播< 10μseneros-eventbus
Agent 指令下发< 100μseneros-agent + eneros-gateway
实时域响应(保护逻辑)< 100μseneros-os

相关文档