Expand description
§IH-Muse: The Common IH-Muse Library for Rust
IH-Muse is a Rust library providing functionality to interact with the IH system, including element registration, metric reporting, and recording/replaying for testing. It’s designed to be efficient, scalable, and easy to integrate into your applications.
§Quickstart
Here’s a simple example demonstrating how to use IH-Muse:
use ih_muse::prelude::*;
use std::collections::HashMap;
#[tokio::main]
async fn main() -> MuseResult<()> {
let config = Config::new(
vec!["http://localhost:8080".to_string()],
ClientType::Poet,
false,
None,
None,
TimestampResolution::Milliseconds,
vec![ElementKindRegistration::new("kind_code", Some("parent_code"), "kind_name", "description")],
vec![MetricDefinition::new("metric_code", "metric_name", "description")],
Some(std::time::Duration::from_secs(60)),
Some(std::time::Duration::from_secs(60)),
3,
)?;
let mut muse = Muse::new(&config)?;
muse.initialize(Some(std::time::Duration::from_secs(5))).await?;
let local_elem_id = muse
.register_element(
"kind_code",
"Element Name".to_string(),
HashMap::new(),
None,
)
.await?;
muse.send_metric(local_elem_id, "metric_code", MetricValue::from(42.0))
.await?;
Ok(())
}
§Features
- Element Registration: Easily register elements with specific kinds and metadata.
- Metric Reporting: Send metrics associated with elements to the Muse system.
- Event Recording: Record events for later analysis or replaying.
- Client Configuration: Support for different client types (
Poet
,Mock
).
§Modules
config
: Contains configuration structures and enums.muse
: Main module containing theMuse
struct.tasks
: Internal tasks handling background operations.
§License
This project is licensed under the MIT License.
Modules§
- Timing Module
Structs§
- The main client for interacting with the Muse system.
Enums§
Constants§
- Polars crate version