| Crates.io | sensorml |
| lib.rs | sensorml |
| version | 0.1.5 |
| created_at | 2025-10-12 05:38:02.084496+00 |
| updated_at | 2025-10-27 19:08:59.556333+00 |
| description | SensorML parser and serializer supporting XML and JSON formats |
| homepage | https://codeberg.org/Cooperatief-Meten-Natuurlijk-UA/sensorml |
| repository | https://codeberg.org/Cooperatief-Meten-Natuurlijk-UA/sensorml |
| max_upload_size | |
| id | 1878971 |
| size | 64,077 |
A minimalist, testable Rust crate for parsing and serializing SensorML documents in XML and JSON. Designed for integration with mapping layers, adapters, and future transformation pipelines.
serde, quick-xml, and chronoAdd to your Cargo.toml:
sensorml = "0.1"
use sensorml::model::{SensorMLDocument, Sensor, Observation};
use sensorml::format::json;
let doc = SensorMLDocument {
sensors: vec![Sensor {
id: "sensor-1".into(),
sensor_type: "temperature".into(),
unit: "Celsius".into(),
description: Some("Outdoor sensor".into()),
}],
observations: vec![Observation {
sensor_id: "sensor-1".into(),
timestamp: "2025-10-11T10:00:00Z".into(),
value: "18.5".into(),
}],
};
let json = json::serialize_to_json(&doc)?;
let parsed = json::parse_from_json(&json)?;
parsed.validate()?; // checks sensor references and timestamp format
cargo test
cargo tarpaulin
cargo mutants
MIT ยฉ 2025 Egon Kastelijn