Augurs
Time series analysis for Rust, with bindings to Python and Javascript
Install / Use
/learn @grafana/AugursREADME
augurs - a time series toolkit for Rust
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).
Check out the demo to see what augurs can do!
[!IMPORTANT] Please note that this is not an official Grafana project, so maintenance may be a bit slower than usual. It's still early days too so expect some rough edges and changes to APIs!
Crate descriptions
| Name | Purpose |
| ------------------------ | ---------------------------------------------------------------------------- |
| augurs | Wrapper crate exposing functionality of all main crates behind feature flags |
| augurs-changepoint | Changepoint detection for time series |
| augurs-clustering | Time series clustering algorithms |
| augurs-core | Common structs and traits |
| augurs-dtw | Dynamic Time Warping (DTW) |
| augurs-ets | Automatic exponential smoothing models |
| augurs-mstl | Multiple Seasonal Trend Decomposition using LOESS (MSTL) |
| augurs-outlier | Outlier detection for time series |
| augurs-prophet | The Prophet time series forecasting algorithm |
| augurs-seasons | Seasonality detection using periodograms |
| augurs-testing | Testing data and, eventually, evaluation harness for implementations |
| js/* | WASM bindings to augurs |
| pyaugurs | Python bindings to augurs |
Developing
This project uses just as a command runner; this will need to be installed separately.
See the justfile for more information.
Some of the tasks require bacon, which will also need to be installed separately.
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-augurs-js; note you'll need to login with npm first.
npm login
# Log in online, etc...
just publish-augurs-js
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.
Related Skills
himalaya
343.1kCLI to manage emails via IMAP/SMTP. Use `himalaya` to list, read, write, reply, forward, search, and organize emails from the terminal. Supports multiple accounts and message composition with MML (MIME Meta Language).
node-connect
343.1kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
90.0kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
coding-agent
343.1kDelegate coding tasks to Codex, Claude Code, or Pi agents via background process
