跳到主内容

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-coreeneros-linalg统一类型、稀疏线性代数
电力内核7eneros-topologyeneros-powerflow拓扑、潮流、约束、设备、时序、事件总线
Agent 运行时5eneros-agenteneros-reasoningAgent、记忆、工具、推理、AI
基础设施8eneros-oseneros-gatewayOS、网关、设备、SCADA、网络、桥接、运行时、性能
协议适配8eneros-protocol-iec104eneros-protocol-mqttIEC 61850/104/103、CDT、CoAP、DL/T 698、ICCP、LwM2M、MQTT、PMU
分析4eneros-analysiseneros-twin状态估计/OPF/短路、EMTP、数字孪生、模拟器
安全4eneros-trusteneros-audit零信任、IDS、审计、合规
运维5eneros-sloeneros-aiopsSLO、AIOps、运维、多区域、多租户
可视化4eneros-dashboardeneros-3d仪表盘、3D、自然语言、报表
国际化与插件9eneros-i18neneros-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统一类型、错误、配置EnerOSErrorEnerOSConfigElementId
eneros-linalg稀疏线性代数SparseMatrixCsrMatrixLUCholesky

电力内核(7 个)

Crate职责关键类型
eneros-topology电网拓扑图建模与分析NetworkGraphTopologyEngineIsland
eneros-powerflowNewton-Raphson 潮流求解PowerFlowSolverYBusMatrixPowerFlowResult
eneros-constraint安全约束校验与可行性投影ConstraintEngineViolationFeasibilityProjector
eneros-equipment设备参数模型库EquipmentLibraryTransformerModelLineModel
eneros-cnpower中国配网一次设备参数库 + 合规检查器CnEquipmentLibraryComplianceChecker
eneros-timeseries时序数据存储与查询(SQLite 持久化)TimeSeriesEnginePointQuery
eneros-eventbus事件驱动通信总线EventBusSubscriptionEvent

Agent 运行时(5 个)

Crate职责关键类型
eneros-agentAgent 运行时与领域 AgentAgentAgentContextOrchestrator
eneros-memoryAgent 记忆系统MemoryStoreEpisodicMemorySemanticMemory
eneros-toolAgent 工具引擎ToolRegistryToolToolResult
eneros-reasoning推理引擎(LLM + rig 集成)ReasoningEngineChainPrompt
eneros-aiAI/ML 集成基础ModelRegistryInferenceEngine

基础设施(8 个)

Crate职责关键类型
eneros-osOS 服务层OsServiceProcessSupervisor
eneros-gateway安全网关、命令执行、决策管线SafetyGatewayCommandAction
eneros-device设备通信与协议适配DeviceManagerDeviceChannel
eneros-scadaSCADA 数据采集(IEC 104 集成)ScadaGatewayDataPoint
eneros-network拓扑-潮流统一管线NetworkPipelinePipelineStage
eneros-bridgePython 桥接(cnpower/pandapower)PythonBridgePyHandle
eneros-runtime架构运行时RuntimeContextRuntimeHandle
eneros-perf性能优化(arena/pool/ring_buffer)ArenaPoolRingBuffer

协议适配(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/短路StateEstimatorOpfSolverFaultAnalyzer
eneros-emtp电磁暂态仿真EmtpSolverEmtpNetwork
eneros-twin数字孪生引擎TwinModelWhatIfEngineHistoryReplay
eneros-simulator场景脚本引擎与模拟器ScenarioSimulator

安全(4 个)

Crate职责关键类型
eneros-trust零信任(内部 CA + mTLS + 证书轮转)CaManagerCertManagerMtlsAcceptor
eneros-ids入侵检测IdsEngineSignatureAnomalyDetector
eneros-audit统一审计(HMAC 签名 + 链式哈希 + WORM)AuditChainAuditEntry
eneros-compliance合规自动化ComplianceCheckerRule

运维(5 个)

Crate职责关键类型
eneros-sloSLO/SLI + 错误预算SloSliErrorBudget
eneros-aiopsAIOps(告警聚类/根因分析/事件聚合)AlarmClusterRootCauseAnalyzer
eneros-ops运维自动化OpsPipelineRunbook
eneros-multiregion多区域高可用RegionRegistryFailoverPolicy
eneros-tenant多租户隔离TenantManagerTenantId

可视化(4 个)

Crate职责关键类型
eneros-dashboardWeb 仪表盘 + PWADashboardServerDashboardDefWidgetDef
eneros-3d3D 场景与 glTF 2.0 导出Scene3DGltfExporter
eneros-nl自然语言查询引擎NlQueryEngineIntentParser
eneros-report报表与导出ReportGeneratorTemplate

国际化与插件(9 个)

Crate职责关键类型
eneros-i18n多语言翻译框架(Fluent + BCP 47)I18nBundleLocale
eneros-plugin插件框架(Ed25519 签名 + seccomp 沙箱)PluginHostPluginManifest
eneros-plugin-macros插件过程宏plugin_export!
eneros-sdk开发 SDKSdkClientSdkBuilder
eneros-edge边缘计算EdgeNodeEdgeAgent
eneros-iot-hub传感器网络聚合IoTHubSensorNode
eneros-graphqlGraphQL APIGraphQLSchemaQueryRoot
eneros-apiCLI / HTTP API 服务ApiServerApiClientCli
eneros-test-utils测试工具与混沌工程TestHarnessChaosMonkey

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-powerfloweneros-api HTTP 端点
校验指令安全性eneros-constraint + eneros-gateway
接入 IEC 104 设备eneros-protocol-iec103eneros-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

相关文档