https://github.com/jbertoni/rustics

simple statistics sets for performance monitoring

https://github.com/jbertoni/rustics

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
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (11.7%) to scientific vocabulary
Last synced: 9 months ago · JSON representation

Repository

simple statistics sets for performance monitoring

Basic Info
  • Host: GitHub
  • Owner: jbertoni
  • License: bsd-2-clause
  • Language: Rust
  • Default Branch: main
  • Homepage:
  • Size: 17.5 MB
Statistics
  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Created almost 3 years ago · Last pushed about 1 year ago
Metadata Files
Readme License

README.md

Rustics

A minimal statistics library for performance monitoring

Rustics implements statistics structs intended primarily for measuring performance parameters. The struct implementations compute various statistical characterizations of the data, such as the mean and variance. The trait Rustics defines the common interface for all statistical types.

At this time, statistics can be gathered for i64 values, time periods (also of type i64), and f64 samples. They can be kept as a running total of all samples recorded, or as a window covering the last N samples. The library also supports creating sets of structs.

Most modules have sample code in their documentation, and many testing modules contain example functions called "sample_usage". The "main.rs" program contains a small example of using running integer and time statistics structs in a set. You can run it by invoking "cargo run".

The structs for time samples require a timer implementation. See the time module for information on timers and to see some sample implementations.

In addition to the more detailed statistics types, the library supports a simple counter for which no other statistics are generated. This can be useful for counting events, for example.

This library also implements a form of hierarchical statistics. The hierarchical statistics combine sets of Rustics instances into single Rustics instances. This summation can allow users to keep historical data with a lower memory footprint, and can reduce floating-point loss of precision. See the lib.rs comments for an overview.

Rustics also implements sets that contain Rustics instances. This module provides one set type that contains Rustics instances as Arc<Mutex<dyn Rustics>> structures and another set type that uses structures of type Rc<RefCell<dyn Rustics>>. The two set modules are otherwise largely identical.

Sets are recursive: a set can have a set as a member. All the Rustics instances in a set hierarchy can be printed with a single method call, and the contained Rustics instances can be cleared with a single method invocation, as well.

The set implementation automatically creates hierarchical titles for Rustics instances. For example, if a user has a set named "Network Statistics" and that set contains a Rustics instance named "Packet Latency", the default title printed for that instance will be "Network Statistics ==> Packet Latency".

Owner

  • Name: Jonathan Bertoni
  • Login: jbertoni
  • Kind: user
  • Location: Atherton, CA, USA
  • Company: findora.org

GitHub Events

Total
  • Push event: 177
Last Year
  • Push event: 177

Packages

  • Total packages: 1
  • Total downloads:
    • cargo 23,619 total
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 28
  • Total maintainers: 1
crates.io: rustics

simple statistic library for performance analysis

  • Documentation: https://docs.rs/rustics/
  • License: MIT OR BSD-2-Clause OR BSD-1-Clause
  • Latest release: 1.0.3
    published over 1 year ago
  • Versions: 28
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 23,619 Total
Rankings
Dependent repos count: 30.3%
Dependent packages count: 31.0%
Average: 53.2%
Downloads: 98.4%
Maintainers (1)
Last synced: 10 months ago