rcf3
rcf3 is a Rust implementation of Random Cut Forest (RCF) for anomaly detection in streaming data, with Python bindings and an mStream detector for mixed numerical and categorical streams.
What it provides
- Random Cut Forest for online anomaly detection, feature attribution, neighborhood search, missing-value imputation, and time-series forecasting
- mStream for mixed numerical/categorical streaming anomaly detection with feature-level score decomposition
- Rust and Python APIs over the same core implementation
Documentation
Quick orientation
Use Forest when your stream is represented as numerical observations and you want the broader RCF feature set:
use Forest;
let mut forest = builder.build?;
forest.update?;
Use MStream when each event has separate numerical and categorical aspects:
use MStream;
let mut detector = builder.build?;
let score = detector.update_and_score?;
Features
The crate supports several compile-time features:
std (enabled by default)
Enables use of the Rust standard library. Disable this for no_std environments:
[]
= { = "0.3", = false }
serde (enabled by default)
Provides JSON serialization and deserialization support for persisted detector state:
[]
= { = "0.3", = ["serde", "std"] }
python (optional)
Builds Python bindings using PyO3, enabling use from Python. Automatically enables serde and std:
[]
= { = "0.3", = ["python"] }
To use just the core algorithm without serialization:
[]
= { = "0.3", = false, = ["std"] }
License
Licensed under either of the Apache License 2.0 or MIT license, at your option.