libspot

Crates.iolibspot
lib.rslibspot
version2.0.0-beta.6.0
created_at2025-07-11 01:21:45.388797+00
updated_at2025-12-18 02:52:41.729485+00
descriptionRust FFI bindings for libspot, a fast time series anomaly detector
homepage
repositoryhttps://github.com/shenxiangzhuang/libspot-rs
max_upload_size
id1747258
size104,164
Mathew Shen (shenxiangzhuang)

documentation

https://docs.rs/libspot

README

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).

Commit count: 16

cargo fmt