EnerOS v0.45.0 Release Notes
- Release Date: 2026-07-01
- Codename: Eco
- Support Status: Stable
- Total Crates: 54
- Test Cases: 7000+
- Contributors: 35
Version Overview
EnerOS v0.45.0 is the fifth release of the “Mature Optimization” phase, focusing on ecosystem expansion. The value of an operating system depends not only on its kernel capabilities, but also on the prosperity of the ecosystem built around it. This release builds the four pillars of the EnerOS ecosystem around four directions: partner integration, third-party plugin certification, solution templates, and app marketplace.
After the first four releases completed performance benchmarking, security auditing, developer experience, and documentation systems, EnerOS itself already has production-ready engineering foundations. v0.45.0 pushes EnerOS from a “product” to a “platform”, attracting partners and third-party developers to build vertical industry applications on EnerOS through open plugin interfaces, certification systems, and application distribution channels.
This release adds the eneros-marketplace crate to provide the marketplace backend, adds eneros-plugin-sdk to provide a third-party plugin development toolkit, and releases the first batch of 24 certified plugins from 8 partners and 15 solution templates, covering the entire power business chain including generation, transmission, distribution, dispatching, marketing, and security.
Key Metrics
| Metric | Value | Description |
|---|---|---|
| Crate count | 54 | Added eneros-marketplace and 2 other crates |
| Test cases | 7000+ | Including plugin compatibility tests |
| Certified plugins | 24 | 8 partners |
| Solution templates | 15 | Full business chain coverage |
| Marketplace apps | 42 | First batch listed |
| Plugin SDK downloads | 1200+ | First week of release |
| Partners | 8 | Including Nari, Xuji, Sifang, etc. |
New Features
1. Partner Integration
EnerOS completed deep integration with 8 core power industry partners. Partner device models, protocol stacks, and analysis tools are connected to the EnerOS kernel through standardized adapter layers. Users can directly use these partner capabilities in EnerOS.
Partners and Integration Content
| Partner | Integration Content | Certification Level | Status |
|---|---|---|---|
| Nari Relays | Relay protection models, IEC 61850 IED | Gold | Certified |
| Xuji Electric | DC transmission models, flexible DC | Gold | Certified |
| Beijing Sifang | Fault recording, SOE events | Silver | Certified |
| Jicheng Electronics | Distribution terminals, DTU/FTU | Silver | Certified |
| Changyuan Shenrui | Distribution automation, feeder terminals | Silver | Certified |
| Guodian Nanzi | Generator excitation, PSS models | Silver | Certified |
| Siyuan Electric | Switchgear models, GIS | Bronze | Certified |
| Yuanguang Software | Power marketing, billing interface | Bronze | Certified |
Adapter Layer Architecture
use eneros_eco::adapter::{PartnerAdapter, AdapterConfig};
use eneros_eco::partners::{Nari, XjElectric};
// Load Nari Relays adapter
let nari_adapter = PartnerAdapter::new(Nari, AdapterConfig {
models_path: "partners/nari/models/",
protocol: "iec61850",
certification: "gold",
});
// Register relay protection models
nari_adapter.register_device_models().await?;
nari_adapter.register_ied_types().await?;
// Use directly in EnerOS
let relay = ctx.syscall(GetDeviceModel {
type_id: "nari-relay-PCS-931",
}).await?;
2. Third-Party Plugin Certification
Added eneros-plugin-sdk and plugin certification system. Third-party developers can develop plugins based on the SDK. After submission, the EnerOS core team conducts security review, compatibility testing, and performance benchmark evaluation. Certified plugins can be listed on the marketplace.
Certification Levels
| Level | Requirements | Permissions | Badge |
|---|---|---|---|
| Gold | Security audit passed + 100% compatibility + performance meets standard | Kernel-mode access + all system calls | Verified Gold |
| Silver | Security review passed + 95% compatibility | User-mode access + restricted system calls | Verified Silver |
| Bronze | Basic security check + 90% compatibility | User-mode access + basic system calls | Verified Bronze |
| Uncertified | Self-developed, not reviewed | Sandbox isolation + minimum permissions | Community |
Plugin SDK Usage
use eneros_plugin_sdk::{Plugin, PluginContext, PluginResult, PluginManifest};
// Define plugin manifest
let manifest = PluginManifest::new("my-fault-analyzer")
.version("1.0.0")
.author("My Company")
.description("Fault analysis plugin")
.permissions(vec![
Permission::ReadTopology,
Permission::ReadTimeseries,
Permission::WriteReport,
])
.api_version("0.45");
// Implement plugin
pub struct FaultAnalyzer;
impl Plugin for FaultAnalyzer {
fn manifest(&self) -> &PluginManifest { &manifest }
async fn init(&mut self, ctx: &mut PluginContext) -> PluginResult<()> {
ctx.log_info("Fault analysis plugin initialized");
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(())
}
}
// Register plugin
plugin_sdk::register_plugin!(FaultAnalyzer);
Plugin Sandbox
Uncertified plugins run in a WASM sandbox, with permissions limited through the capabilities model. The sandbox provides CPU time slice limits, memory caps, and system call filtering, ensuring uncertified plugins do not affect system stability.
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. Solution Templates
Released 15 solution templates. Each template contains complete architecture design documents, Agent implementations, deployment configurations, and operations manuals, covering typical power industry business scenarios. Templates can be directly used as project starting points, greatly shortening project delivery cycles.
Template List
| Template | Scenario | Included Components | Delivery Cycle |
|---|---|---|---|
| Provincial Dispatch | Provincial grid dispatching automation | Dispatch Agent + OPF + N-1 | 8 weeks |
| City Dispatch | City-level distribution dispatching | Dispatch Agent + feeder automation | 6 weeks |
| Substation | Smart substation | IEC 61850 + protection coordination | 4 weeks |
| Distribution Network | Distribution automation | FA + fault location + isolation | 6 weeks |
| Microgrid | Microgrid management | Island detection + grid-connected/off-grid + storage | 5 weeks |
| New Energy | Wind/solar plant monitoring | Forecasting + output control + AGC | 5 weeks |
| Energy Storage | Storage station management | BMS + PCS + dispatching | 4 weeks |
| Charging Stations | EV charging network | Load management + billing + orderly charging | 4 weeks |
| Virtual Power Plant | VPP aggregation operations | Aggregation + dispatching + trading | 6 weeks |
| Demand Response | Load demand response | Load aggregation + response strategy | 5 weeks |
| Electricity Trading | Electricity market trading | Bidding + clearing + settlement | 6 weeks |
| Security Monitoring | Cybersecurity monitoring | Audit + intrusion detection + alerts | 4 weeks |
| Digital Twin | Grid digital twin | Twin + state estimation + replay | 8 weeks |
| Fault Diagnosis | Intelligent fault diagnosis | Diagnosis + protection coordination + self-healing | 5 weeks |
| Marketing | Power marketing | Billing + customer service + metering | 5 weeks |
Template Usage
# Create project from solution template
eneros-cli project new my-vpp --solution virtual-power-plant
# Generated complete project structure
# my-vpp/
# ├── docs/ # Architecture design documents
# │ ├── architecture.md
# │ └── deployment.md
# ├── src/
# │ ├── agents/ # Agent implementations
# │ ├── models/ # Business models
# │ └── config.rs
# ├── tests/
# ├── deploy/
# │ ├── docker-compose.yml
# │ └── helm/
# └── ops/
# ├── runbook.yml # Operations manual
# └── monitors/ # Monitoring configuration
4. App Marketplace
Added the eneros-marketplace crate, providing marketplace backend services. Developers can publish plugins, templates, and complete applications. Users can search, install, update, and uninstall. The marketplace supports version management, dependency resolution, and signature verification.
Marketplace Architecture
eneros-marketplace/
├── src/
│ ├── registry/ # Application registry
│ │ ├── catalog.rs # Catalog management
│ │ ├── version.rs # Version management
│ │ └── signing.rs # Signature verification
│ ├── search/ # Search engine
│ │ ├── index.rs # Full-text index
│ │ └── ranking.rs # Ranking algorithm
│ ├── install/ # Installer
│ │ ├── resolver.rs # Dependency resolution
│ │ └── downloader.rs # Downloader
│ └── api/ # REST API
└── web/ # Marketplace frontend
Publishing Applications
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: "Advanced fault analysis tool, supporting waveform recognition and protection coordination".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?;
Installing Applications
# Search applications
eneros-cli marketplace search "fault analysis"
# Install application
eneros-cli marketplace install advanced-fault-analyzer
# View installed applications
eneros-cli marketplace list --installed
# Update applications
eneros-cli marketplace update --all
// Programmatic installation
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?;
Improvements
Plugin Loading Performance
Plugin loading changed from synchronous blocking to asynchronous streaming. Cold start time for large plugins reduced from 800ms to 200ms.
Marketplace Search
Marketplace search introduced embedding-based semantic search, supporting natural language queries. For example, searching for “tools that can help me analyze grid faults” returns fault diagnosis applications.
Plugin Dependency Resolution
The dependency resolver upgraded from simple version matching to a SAT solver, capable of handling complex dependency conflicts and version constraints.
Bug Fixes
- BG-601: Plugins left configuration files after uninstall, added cleanup hooks
- BG-605: Marketplace search inaccurate for Chinese keywords, optimized word segmentation
- BG-609: Partner adapter crashed on model version mismatch, added version negotiation
- BG-613: Sandbox plugins did not exit gracefully when memory limit reached, changed to OOM alert + degradation
- BG-617: Solution template Helm Chart compatibility issues on K8s 1.28, fixed
Breaking Changes
BC-241: Plugin API Versioning
Plugin interfaces introduce explicit API version declaration. Plugins without version declaration run in v0.40 compatibility mode, which will be removed in v0.48.0.
BC-242: eneros-plugin-sdk Trait Method Change
Plugin trait adds on_config_change method (default empty implementation). Custom plugins need to implement as needed.
Dependency Upgrades
| Dependency | Old Version | New Version | Description |
|---|---|---|---|
| wasmtime | 14.0 | 15.0 | Sandbox runtime |
| reqwest | 0.11 | 0.12 | Marketplace HTTP client |
| semver | 1.0 | 1.0.22 | Version parsing |
Upgrade Guide
Upgrade from v0.44.0
cargo update
cargo test --workspace
Install plugin SDK:
[dependencies]
eneros-plugin-sdk = "0.45"
eneros-marketplace = "0.45"
Enable marketplace client:
eneros-cli marketplace login
eneros-cli marketplace search "dispatch"
Related Documentation
- Plugin Development Guide - Plugin SDK usage
- Certification System - Plugin certification process
- Solution Templates - Template catalog
- App Marketplace - Application publishing and installation