| Crates.io | sleepycat |
| lib.rs | sleepycat |
| version | 0.1.2 |
| created_at | 2019-07-05 14:24:04.450779+00 |
| updated_at | 2019-07-05 15:18:32.335407+00 |
| description | Slow down your data |
| homepage | https://github.com/daniellockyer/sleepycat |
| repository | https://github.com/daniellockyer/sleepycat |
| max_upload_size | |
| id | 146564 |
| size | 18,217 |
sleepycat takes in data from stdin and outputs on stdout at a given number of lines per second (LPS).
I was writing a program to parse a log file and draw graphs in real-time. I needed a way to repeatedly test it without generating log files from the source application. sleepycat was born so I could reuse the same log file and pipe it into my application at a customizable rate.
Sure, you could do it in Bash with some clever scripting, but I wanted the ability to add in some custom patterns at some point.
You have several ways to get sleepycat:
cargo install sleepycatgit clone https://github.com/daniellockyer/sleepycatcargo build --releasetarget/release/sleepycatRight now, this project is just an attempt to get something running. It doesn't take into account the time it takes to print a line, so it sleeps for too long and the actual LPS ends up being lower than the target. It's not so much of a big deal with smaller targets, but it struggles to reach higher numbers.
You can test the accuracy using the following command:
cargo run --release < access.log | pv --line-mode --rate > /dev/null