valdo-js
Version:
JavaScript/WASM bindings for Valdo time series anomaly detection library
94 lines (66 loc) • 2.26 kB
Markdown
# Valdo JavaScript/WASM Bindings
[](https://www.npmjs.com/package/valdo-js)
[](https://github.com/shenxiangzhuang/valdo/blob/master/LICENSE)
JavaScript and WebAssembly bindings for the Valdo time series anomaly detection library.
## Quick Start
### Installation
```bash
npm install valdo-js
```
### Basic Usage
```javascript
import init, { Detector, AnomalyStatus } from 'valdo-js';
// Initialize WASM
await init();
// Create detector
const detector = new Detector(BigInt(10), 0.0001, 0.998, BigInt(200));
// Train on historical data
const timestamps = new Float64Array([1, 2, 3, 4, 5]);
const values = new Float64Array([10, 11, 12, 13, 14]);
detector.train(timestamps, values);
// Detect anomalies
const result = detector.detect(6, 20);
console.log(result === AnomalyStatus.Normal ? 'Normal' : 'Anomaly');
// Always cleanup
detector.free();
```
## Development
### Building
Build the WASM package:
```bash
npm run build # Build for web (default)
npm run build-nodejs # Build for Node.js
npm run build-bundler # Build for bundlers
npm run build-all # Build all targets
```
### Development Server
Run the example with a local server:
```bash
npm run dev # Builds and serves example
npm run serve # Just serves example (requires existing build)
```
### Publishing
```bash
npm run publish-dry # Test publication
npm run publish-npm # Actual publication to npm
```
## Example
See the `example/` directory for a complete web application demonstrating real-time anomaly detection with interactive charts.
Run the example:
```bash
npm run dev
# Open http://localhost:8000
```
## Package Structure
```
bindings/js/
├── src/ # Rust source code
├── pkg/ # Generated WASM package (npm publishable)
├── example/ # Web demo application
├── Cargo.toml # Rust package configuration
└── package.json # npm package configuration
```
## API Documentation
For complete API documentation, see the [package README](./pkg/README.md) or visit [npm](https://www.npmjs.com/package/valdo-js).
## License
MIT © [Mathew Shen](https://github.com/shenxiangzhuang)