Crate libspot

Crate libspot 

Source
Expand description

§libspot

Crates.io Documentation License: LGPL v3

A safe Rust wrapper (using FFI) for the libspot time series anomaly detection library.

§Quick Start

use libspot::{SpotDetector, SpotConfig, SpotStatus};

fn main() -> Result<(), Box<dyn std::error::Error>> {
    // Create detector with default configuration
    let config = SpotConfig::default();
    let mut detector = SpotDetector::new(config)?;

    // Fit with training data
    let training_data: Vec<f64> = (0..1000)
        .map(|i| 5.0 + (i as f64 * 0.01).sin() * 2.0)
        .collect();
    detector.fit(&training_data)?;

    // Detect anomalies in real-time
    let test_value = 50.0; // This should be an anomaly
    match detector.step(test_value)? {
        SpotStatus::Normal => println!("Normal data point"),
        SpotStatus::Excess => println!("In the tail distribution"),
        SpotStatus::Anomaly => println!("Anomaly detected! 🚨"),
    }

    Ok(())
}

§Alternative

For a pure Rust implementation without FFI dependencies, see the libspot-rs crate.

§License

This project is licensed under the GNU Lesser General Public License v3.0 (LGPL-3.0).

Structs§

SpotConfig
Configuration for initializing a SPOT detector
SpotDetector
A SPOT detector for streaming anomaly detection

Enums§

SpotError
Errors that can occur during SPOT operations
SpotStatus
Status codes returned by SPOT operations

Functions§

set_float_utils
Set custom ldexp/frexp functions for float decomposition.
set_math_functions
Set custom math functions (log, exp, pow) for the library.
version
Get the version of the underlying libspot library

Type Aliases§

FreeFn
FrexpFn
LdexpFn
MallocFn
Math2Fn
MathFn
SpotFloat
Equivalent to C’s double type.
SpotResult
Result type for SPOT operations