Product sample · Rust

Findr

A log analysis CLI written in Rust with no external crates. It parses JSON lines and key=value logs, filters with expressions, aggregates counts and percentiles, finds top values and follows a file in tail mode.

Rustlanguage
0crates
59tests
stats, top, filter, tailcommands
live demo
Findr
The problem

Logs are easy to read once.

Reading one log line is trivial. Answering questions across a million of them at 2am is not: what is the p99 latency, which endpoint is slowest, what changed after the deploy?

Findr answers those questions from the shell, with a parser that is strict about malformed lines and commands that print either a table for humans or JSON for another tool.

What we built

One binary, no dependencies.

  • Parser for JSON lines and key=value formats, with dotted keys flattened into one namespace.
  • Filter expressions: equality, inequality, contains and numeric comparisons, combined with AND.
  • Aggregations: count, min, max, sum, mean, p50, p95 and p99 per field.
  • Top-N by any field, and a tail mode that polls a file and follows truncation.
  • CLI output as a table, JSON or raw values, with a strict mode for malformed input.
Architecture

How it is put together

src/
 ├─ parser.rs (json + kv, typed values)
 ├─ filter.rs (expression parsing and evaluation)
 ├─ stats.rs (count, sum, percentiles)
 ├─ aggregate.rs (grouping, top-N)
 ├─ tail.rs (follow, truncation)
 └─ main.rs (CLI)
tests/cli.rs integration tests spawn the binary against fixtures
scripts/test.sh runs cargo test

Stack

Rust 2024std only

Security and money

  • Zero dependencies means the binary is small and `cargo test` runs offline in CI.
  • Percentiles use the nearest-rank method and the README states it, so the numbers can be checked.
  • Malformed lines are reported, not silently dropped; strict mode makes them fatal.
  • The browser demo is a mirror of the parser and aggregation logic, and says so on the page.
Screens

Product surfaces

Findr, the working demo
Findr, the working demo
Similar work

Building something in this category?

We can walk you through the architecture, the payment integration and the failure cases on a call, including the parts that were hard.