finds.dev← search

// the find

nielsbasjes/yauaa

★ 917 · Java · Apache-2.0 · updated Jun 2026

Yet Another UserAgent Analyzer

YAUAA is a Java library for parsing User-Agent strings and Client Hints headers, extracting device type, OS, browser, version, and dozens of other attributes. It's been in active development for over a decade and targets the JVM ecosystem — Java, Kotlin, Scala — with first-class UDFs for Flink, Hive, Trino, Snowflake, and Snowplow. If you're doing analytics at scale on a JVM-based data platform, this is the most complete option in the space.

Uses ANTLR4 grammars and YAML rule files for parsing rather than regex soup, which means the rules are readable and the grammar is auditable. Client Hints support is there and documented, which most UA parsers still skip. The platform integrations are real — not thin wrappers, but actual UDFs with their own modules and integration tests for each target (Flink, Hive, Trino, Snowplow). Reproducible builds are verified and published to Maven Central, which matters if you're in a regulated environment that cares about artifact provenance.

Startup time is significant — the analyzer loads and compiles all its YAML rules on initialization, which can be several seconds. Fine for a long-running service, painful in Lambda or short-lived containers. The rule file format is powerful but has a steep learning curve if you need to add custom device patterns; the documentation helps but it's not simple. No native Rust or Go port means if you're outside the JVM, you're either hitting the REST endpoint (the Docker image) or writing FFI glue. The REST service is documented as 'slow and rate limited' — it's not meant for production use and there's no managed hosted option.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →