Skip to content
/ augurs Public

Time series analysis for Rust, with bindings to Python and Javascript

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT
Notifications You must be signed in to change notification settings

grafana/augurs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

augurs - a time series toolkit for Rust

Python Rust docs.rs crates.io

This repository contains augurs, a time series toolkit built in Rust. It aims to provide some useful primitives for working with time series, as well as the main functionality: heavily optimized models for forecasting, outlier detection, clustering, seasonality detection, changepoint detection and more. Most algorithms are based on existing R or Python implementations.

As well as the core Rust library, augurs will provide bindings to other languages such as Python and Javascript (via WASM).

Status: please note that this repository is very much in progress. APIs are subject to change, and functionality may not be fully implemented.

Crate descriptions

Name Purpose Status
augurs Wrapper crate exposing functionality of all main crates behind feature flags alpha
augurs-changepoint Changepoint detection for time series alpha
augurs-clustering Time series clustering algorithms beta
augurs-core Common structs and traits alpha - API is flexible right now
augurs-dtw Dynamic Time Warping (DTW) beta
augurs-ets Automatic exponential smoothing models alpha - non-seasonal models working and tested against statsforecast
augurs-mstl Multiple Seasonal Trend Decomposition using LOESS (MSTL) beta - working and tested against R
augurs-outlier Outlier detection for time series alpha
augurs-seasons Seasonality detection using periodograms alpha - working and tested against Python in limited scenarios
augurs-testing Testing data and, eventually, evaluation harness for implementations alpha - just data right now
augurs-js WASM bindings to augurs alpha
pyaugurs Python bindings to augurs alpha

Releasing

Releases are made using release-plz: a PR should be automatically created for each release, and merging will perform the release and publish automatically.

Releasing the augurs Python library

The first exception to the release-plz flow is the augurs Python library, which is only released when a new tag beginning with pyaugurs is pushed. This must be done manually for now (ideally soon after the release-plz PR is merged).

E.g.:

git tag pyaugurs-v0.3.0 -m "Release pyaugurs v0.3.0"
git push --tags

Releasing the augurs npm library

The augurs npm library must also be published manually. This can be done using just publish-npm; note you'll need to login with npm first.

npm login
# Log in online, etc...
just publish-npm

License

Dual-licensed to be compatible with the Rust project. Licensed under the Apache License, Version 2.0 <http://www.apache.org/licenses/LICENSE-2.0> or the MIT license <http://opensource.org/licenses/MIT>, at your option.

About

Time series analysis for Rust, with bindings to Python and Javascript

Topics

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Code of conduct

Security policy

Stars

Watchers

Forks

Packages

No packages published

Languages