Crate neuronic

Crate neuronic 

Source
Expand description

Neuronic - Real-time graphical visualization of Caryatid message bus flow.

This library provides components for visualizing message flow in distributed systems that use the Caryatid framework. It can be used to:

  • Subscribe to RabbitMQ monitoring snapshots
  • Build and update a graph model from snapshots
  • Render interactive visualizations with egui

§Modules

  • config - Configuration loading from TOML and environment variables
  • graph - Graph data model for message flow visualization
  • subscriber - RabbitMQ subscription for receiving monitor snapshots
  • ui - GUI components for rendering the visualization

§Example

use neuronic::{NeuronicConfig, MessageFlowGraph, HealthConfig};
use std::path::Path;

// Load configuration
let config = NeuronicConfig::load(Path::new("neuronic.toml")).unwrap();

// Create a graph with custom health thresholds
let health_config = HealthConfig {
    backlog_warning: config.graph.backlog_warning,
    backlog_critical: config.graph.backlog_critical,
    pending_warning_us: config.graph.pending_warning_ms * 1000,
    pending_critical_us: config.graph.pending_critical_ms * 1000,
};
let graph = MessageFlowGraph::new_with_config(
    health_config,
    config.filter.ignored_topics,
);

Re-exports§

pub use config::FilterConfig;
pub use config::GraphConfig;
pub use config::NeuronicConfig;
pub use config::DEFAULT_CONFIG_FILE;
pub use graph::HealthConfig;
pub use graph::HealthStatus;
pub use graph::MessageFlowGraph;
pub use graph::ModuleNode;
pub use graph::TopicEdge;
pub use ui::NeuronicApp;

Modules§

config
Configuration loading for Neuronic.
graph
Graph data model for message flow visualization.
subscriber
RabbitMQ subscription for receiving monitor snapshots.
ui
UI module for Neuronic.