bo4e 0.2.0

BO4E (Business Objects for Energy) - Rust implementation
Documentation

BO4E - Business Objects for Energy

Rust implementation of the BO4E standard for data exchange in the German energy industry.

Quick Start

use bo4e::prelude::*;

// Create a meter
let meter = Meter {
    meter_number: Some("1EMH0012345678".to_string()),
    division: Some(Division::Electricity),
    meter_type: Some(MeterType::ModernMeasuringDevice),
    ..Default::default()
};

// Serialize to German JSON (BO4E standard)
let json = to_json_german(&meter).unwrap();
println!("{}", json);

// Deserialize
let mut bytes = json.into_bytes();
let parsed: Meter = from_json(&mut bytes).unwrap();
assert_eq!(parsed.meter_number, Some("1EMH0012345678".to_string()));

Crate Structure

  • [bo] - Business Objects (Meter, MarketLocation, Contract, etc.)
  • [com] - Components (Address, Price, MeterReading, etc.)
  • [enums] - Enumerations (Division, MeterType, ContractStatus, etc.)

Serialization

BO4E uses German field names in JSON by default to maintain compatibility with the standard. Use [to_json_english] for English field names.

use bo4e::prelude::*;

let meter = Meter::default();

// German (standard)
let german = to_json_german(&meter).unwrap();

// English
let english = to_json_english(&meter).unwrap();

Performance

This crate uses simd-json for SIMD-accelerated JSON parsing. For best performance, use [from_json] with a mutable byte slice.

Related Projects