https://github.com/grafana/augurs

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

https://github.com/grafana/augurs

Science Score: 26.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (9.4%) to scientific vocabulary

Keywords

hacktoberfest rust time-series time-series-analysis

Keywords from Contributors

standardization hack autograder interpretability sequences transformer interaction parallel projections data-pipeline
Last synced: 6 months ago · JSON representation

Repository

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

Basic Info
  • Host: GitHub
  • Owner: grafana
  • License: apache-2.0
  • Language: Rust
  • Default Branch: main
  • Homepage:
  • Size: 5.87 MB
Statistics
  • Stars: 532
  • Watchers: 113
  • Forks: 22
  • Open Issues: 14
  • Releases: 255
Topics
hacktoberfest rust time-series time-series-analysis
Created over 2 years ago · Last pushed 6 months ago
Metadata Files
Readme Changelog Contributing License

README.md

augurs - a time series toolkit for Rust

Python Rust docs.rs crates.io libs.tech recommends

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

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

```bash 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.

Owner

  • Name: Grafana Labs
  • Login: grafana
  • Kind: organization
  • Email: hello@grafana.com
  • Location: Sweden

Grafana Labs is behind leading open source projects Grafana and Loki, and the creator of the first open & composable observability platform.

GitHub Events

Total
  • Create event: 432
  • Issues event: 25
  • Release event: 181
  • Watch event: 438
  • Delete event: 232
  • Issue comment event: 254
  • Push event: 530
  • Pull request review comment event: 248
  • Pull request review event: 277
  • Pull request event: 349
  • Fork event: 14
Last Year
  • Create event: 432
  • Issues event: 25
  • Release event: 181
  • Watch event: 438
  • Delete event: 232
  • Issue comment event: 254
  • Push event: 530
  • Pull request review comment event: 248
  • Pull request review event: 277
  • Pull request event: 349
  • Fork event: 14

Committers

Last synced: 9 months ago

All Time
  • Total Commits: 308
  • Total Committers: 10
  • Avg Commits per committer: 30.8
  • Development Distribution Score (DDS): 0.185
Past Year
  • Commits: 218
  • Committers: 9
  • Avg Commits per committer: 24.222
  • Development Distribution Score (DDS): 0.193
Top Committers
Name Email Commits
Ben Sully b****y@g****m 251
dependabot[bot] 4****] 43
Yasir Ekinci e****r@g****m 4
3sh V r****1@g****m 3
github-actions[bot] 4****] 2
libs.tech a****o@l****h 1
Mathew Shen d****r@g****m 1
Edward Qian e****n@g****m 1
DemoYeti 1****i 1
Chris Marchbanks c****s@g****m 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 29
  • Total pull requests: 357
  • Average time to close issues: about 1 month
  • Average time to close pull requests: 6 days
  • Total issue authors: 6
  • Total pull request authors: 10
  • Average comments per issue: 0.55
  • Average comments per pull request: 1.11
  • Merged pull requests: 264
  • Bot issues: 1
  • Bot pull requests: 135
Past Year
  • Issues: 19
  • Pull requests: 268
  • Average time to close issues: about 2 months
  • Average time to close pull requests: 3 days
  • Issue authors: 6
  • Pull request authors: 9
  • Average comments per issue: 0.74
  • Average comments per pull request: 1.32
  • Merged pull requests: 191
  • Bot issues: 1
  • Bot pull requests: 108
Top Authors
Issue Authors
  • sd2k (25)
  • Beliavsky (1)
  • coderabbitai[bot] (1)
  • par5er (1)
  • dependabot[bot] (1)
  • Hovestar (1)
  • jdmichaud (1)
Pull Request Authors
  • sd2k (324)
  • dependabot[bot] (151)
  • 3shv (6)
  • DemoYeti (3)
  • shenxiangzhuang (3)
  • yoziru (2)
  • github-actions[bot] (2)
  • csmarchbanks (2)
  • edwardcqian (2)
  • libstech-auto (1)
Top Labels
Issue Labels
help wanted (6) good first issue (6) enhancement (5) bug (2) prophet (1) dependencies (1) rust (1)
Pull Request Labels
dependencies (151) github_actions (67) rust (64) javascript (18) enhancement (6) good first issue (2) help wanted (2) documentation (1)

Packages

  • Total packages: 16
  • Total downloads:
    • npm 200,450 last-month
    • pypi 2,985 last-month
    • cargo 291,335 total
  • Total dependent packages: 12
    (may contain duplicates)
  • Total dependent repositories: 0
    (may contain duplicates)
  • Total versions: 287
  • Total maintainers: 3
npmjs.org: @bsull/augurs

JavaScript bindings for the augurs time series library.

  • Versions: 34
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 199,838 Last month
Rankings
Forks count: 15.9%
Stargazers count: 17.3%
Average: 31.0%
Dependent repos count: 37.3%
Dependent packages count: 53.4%
Maintainers (2)
Last synced: 6 months ago
npmjs.org: @bsull/augurs-prophet-wasmstan

Prophet's Stan model, compiled to WASM, for use with the @bsull/augurs library.

  • Versions: 4
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 612 Last month
Rankings
Dependent repos count: 25.7%
Average: 31.5%
Dependent packages count: 37.2%
Maintainers (1)
Last synced: 6 months ago
pypi.org: augurs

Python bindings for the augurs time series library.

  • Versions: 5
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 2,985 Last month
Rankings
Dependent packages count: 7.4%
Average: 38.1%
Dependent repos count: 68.8%
Maintainers (1)
Last synced: 6 months ago
npmjs.org: @bsull/augurs-js

JavaScript bindings for the augurs time series library.

  • Versions: 1
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent repos count: 37.3%
Average: 45.4%
Dependent packages count: 53.4%
Maintainers (1)
Last synced: 6 months ago
crates.io: augurs-prophet

Prophet: time-series forecasting at scale, in Rust.

  • Versions: 18
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 17,980 Total
Rankings
Dependent repos count: 25.0%
Dependent packages count: 33.2%
Average: 51.4%
Downloads: 96.1%
Maintainers (1)
Last synced: 6 months ago
crates.io: augurs-dtw

Dynamic Time Warping (DTW) algorithm for Rust

  • Versions: 18
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 19,605 Total
Rankings
Dependent repos count: 25.0%
Dependent packages count: 33.2%
Average: 51.4%
Downloads: 96.1%
Maintainers (1)
Last synced: 6 months ago
crates.io: augurs-clustering

Time series clustering.

  • Versions: 18
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 21,788 Total
Rankings
Dependent repos count: 25.0%
Dependent packages count: 33.2%
Average: 51.4%
Downloads: 96.1%
Maintainers (1)
Last synced: 6 months ago
crates.io: augurs

A time-series toolkit for forecasting, outlier detection, clustering and more.

  • Versions: 18
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 23,286 Total
Rankings
Dependent repos count: 25.0%
Dependent packages count: 33.2%
Average: 51.4%
Downloads: 96.1%
Maintainers (1)
Last synced: 6 months ago
crates.io: augurs-outlier

Outlier detection for time series.

  • Versions: 21
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 20,588 Total
Rankings
Dependent repos count: 27.2%
Dependent packages count: 36.1%
Average: 53.2%
Downloads: 96.4%
Maintainers (1)
Last synced: 6 months ago
crates.io: augurs-forecaster

A high-level API for the augurs forecasting library.

  • Versions: 21
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 26,097 Total
Rankings
Dependent repos count: 27.2%
Dependent packages count: 36.1%
Average: 53.2%
Downloads: 96.4%
Maintainers (1)
Last synced: 6 months ago
crates.io: augurs-mstl

Multiple Seasonal-Trend decomposition with LOESS (MSTL) using the augurs time series library.

  • Versions: 25
  • Dependent Packages: 3
  • Dependent Repositories: 0
  • Downloads: 32,808 Total
Rankings
Dependent repos count: 30.4%
Dependent packages count: 31.1%
Average: 53.3%
Downloads: 98.4%
Maintainers (1)
Last synced: 6 months ago
crates.io: augurs-ets

ETS models for augurs

  • Versions: 25
  • Dependent Packages: 2
  • Dependent Repositories: 0
  • Downloads: 34,264 Total
Rankings
Dependent repos count: 30.4%
Dependent packages count: 31.1%
Average: 53.3%
Downloads: 98.4%
Maintainers (1)
Last synced: 6 months ago
crates.io: augurs-testing

Test framework and data for the augurs library.

  • Versions: 8
  • Dependent Packages: 3
  • Dependent Repositories: 0
  • Downloads: 10,009 Total
Rankings
Dependent repos count: 30.3%
Dependent packages count: 31.4%
Average: 53.4%
Downloads: 98.4%
Maintainers (1)
Last synced: 6 months ago
crates.io: augurs-core

Core data structures and traits for the augurs time series library.

  • Versions: 25
  • Dependent Packages: 4
  • Dependent Repositories: 0
  • Downloads: 38,240 Total
Rankings
Dependent repos count: 30.3%
Dependent packages count: 31.4%
Average: 53.4%
Downloads: 98.4%
Maintainers (1)
Last synced: 6 months ago
crates.io: augurs-seasons

Seasonality detection using periodograms

  • Versions: 24
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 25,186 Total
Rankings
Dependent repos count: 29.3%
Dependent packages count: 34.5%
Average: 53.4%
Downloads: 96.4%
Maintainers (1)
Last synced: 6 months ago
crates.io: augurs-changepoint

Changepoint detection using Bayesian Online Change Point Detection and more.

  • Versions: 22
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 21,484 Total
Rankings
Dependent repos count: 27.5%
Dependent packages count: 36.4%
Average: 53.5%
Downloads: 96.6%
Maintainers (1)
Last synced: 6 months ago

Dependencies

.github/workflows/benchmark.yaml actions
  • actions/cache v3 composite
  • actions/checkout v4 composite
  • actions/github-script v6 composite
.github/workflows/python.yml actions
  • PyO3/maturin-action v1 composite
  • actions/checkout v4 composite
  • actions/download-artifact v3 composite
  • actions/setup-python v4 composite
  • actions/upload-artifact v3 composite
.github/workflows/release-plz.yml actions
  • MarcoIeni/release-plz-action v0.5 composite
  • actions/checkout v4 composite
  • dtolnay/rust-toolchain stable composite
.github/workflows/rust.yml actions
  • actions/checkout v4 composite
  • moonrepo/setup-rust v1 composite
Cargo.toml cargo
crates/augurs-core/Cargo.toml cargo
crates/augurs-ets/Cargo.toml cargo
  • lstsq 0.5.0
  • nalgebra 0.32.2
  • rand 0.8.5
  • rand_distr 0.4.3
  • roots 0.0.8
crates/augurs-js/Cargo.toml cargo
crates/augurs-mstl/Cargo.toml cargo
  • stlrs 0.2.1
crates/augurs-testing/Cargo.toml cargo
crates/pyaugurs/Cargo.toml cargo
crates/pyaugurs/pyproject.toml pypi
  • numpy *