{"id":13587024,"url":"https://github.com/56quarters/staccato","last_synced_at":"2025-04-07T19:30:35.889Z","repository":{"id":56646303,"uuid":"64095567","full_name":"56quarters/staccato","owner":"56quarters","description":"Statistics from the command line","archived":true,"fork":false,"pushed_at":"2021-01-11T02:53:30.000Z","size":1187,"stargazers_count":11,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-31T00:58:36.361Z","etag":null,"topics":["cli","rust","statistics"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/56quarters.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGES.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-07-25T01:52:29.000Z","updated_at":"2023-07-25T14:03:02.000Z","dependencies_parsed_at":"2022-08-15T22:31:32.319Z","dependency_job_id":null,"html_url":"https://github.com/56quarters/staccato","commit_stats":null,"previous_names":["tshlabs/staccato"],"tags_count":10,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/56quarters%2Fstaccato","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/56quarters%2Fstaccato/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/56quarters%2Fstaccato/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/56quarters%2Fstaccato/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/56quarters","download_url":"https://codeload.github.com/56quarters/staccato/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247716053,"owners_count":20984161,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli","rust","statistics"],"created_at":"2024-08-01T15:05:58.370Z","updated_at":"2025-04-07T19:30:35.202Z","avatar_url":"https://github.com/56quarters.png","language":"Rust","funding_links":[],"categories":["Rust"],"sub_categories":[],"readme":"# Staccato\n\n[![Build Status](https://travis-ci.org/56quarters/staccato.svg?branch=master)](https://travis-ci.org/56quarters/staccato)\n[![crates.io](https://img.shields.io/crates/v/staccato.svg)](https://crates.io/crates/staccato/)\n\nStatistics from the command line!\n\nStaccato (`st` for short) is a command line program that lets you compute\nstatistics from values from a file or standard input. It computes things\nabout the stream of numbers like min, max, mean, median, and standard\ndeviation. It can also compute these things about some subset of the stream,\nfor example the lower 95% of values.\n\n## Install\n\n### Cargo (Rust build tool)\n\nStaccato is a Rust project. If you want to install it, you'll need the Rust\ntoolchain. For more information about how to install Rust see https://www.rustup.rs/\n\nAfter you have Rust installed, you can use Cargo to install Staccato.\n\n```\ncargo install --force staccato\nst --help\n```\n\n### Docker\n\nDocker images of Staccato are pushed to Docker Hub for each release. To run the latest\nversion, use the following command.\n\n```\ndocker run --rm --tty --interactive tshlabs/staccato:latest\n```\n\n## Examples\n\nSome examples of how to use Staccato are given below. Note that these\nexamples assume you are familiar with standard Unix command line tools\nlike `awk`, `cut`, and `tail`.\n\n### File of Values\n\nThe most obvious use case for Staccato is when you already have a file\nfull of numbers and you want to know things about them. For example, imagine\nyou have a file called `timings.log` like so:\n\n```\n$ cat \u003c\u003c EOF \u003e timings.log\n0.572124\n0.623724\n1.043369\n0.563586\n1.603538\n0.540765\n1.677319\n0.170808\n0.147564\nEOF\n```\n\nTo get statistics about those values, you'd run Staccato like this:\n\n```\n$ st timings.log\ncount: 9\nsum: 6.94279\nmean: 0.77142\nupper: 1.67731\nlower: 0.14756\nmedian: 0.57212\nstddev: 0.52650\n```\n\n### Application Log File\n\nAnother good use of Staccato is to compute the statistics from some\nparticular field or value being written to a log file. Imagine that\nyou have an access log called `access.log` for your web application\nthat looks something like the following:\n\n```\n2016-08-29T02:14:32 GET /some-url-path/?foo=bar 200 3.84639\n```\n\n... where the fields in this log represent:\n\n```\n$TIMESTAMP $HTTP_METHOD $REQUEST_URL $HTTP_RESPONSE $RESPONSE_TIME_IN_MS\n```\n\nTo get statistics about the most recent 100 response times for your\napplication, you might use Staccato like this:\n\n```\n$ tail -n 100 /var/log/my-application/access.log | cut -d ' ' -f 5 | st\ncount: 100\nmean: 0.20346\nupper: 3.84639\nlower: 0.00577\nmedian: 0.02101\nstddev: 0.60871\n```\n\n## Source\n\nThe source code is available on GitHub at https://github.com/56quarters/staccato\n\n## Changes\n\nRelease notes for Staccato can be found in the [CHANGES.md](CHANGES.md) file.\n\n## Development\n\nStaccato uses Cargo for performing various development tasks.\n\nTo build Staccato:\n\n```\n$ cargo build\n```\n\nTo run tests:\n\n```\n$ cargo test\n```\n\nTo run benchmarks:\n\n```\n$ cargo bench\n```\n\nTo build documentation:\n\n```\n$ cargo doc\n```\n\n## License\n\nStaccato is available under the terms of the [GPL, version 3](LICENSE).\n\n### Contribution\n\nUnless you explicitly state otherwise, any contribution intentionally submitted\nfor inclusion in the work by you shall be licensed as above, without any\nadditional terms or conditions.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F56quarters%2Fstaccato","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F56quarters%2Fstaccato","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F56quarters%2Fstaccato/lists"}