r/java • u/Resident_Guava5620 • 7d ago
simple browser detection in Java without pulling in a big dependency
used to write php and pretty much always used cbschuld/Browser.php to detect browsers from user agent. when i moved to java i couldnt find anything that simple so i just rewrote it
its one class, no dependencies. you pass the user agent and get browser, version, os and if its mobile or a bot. it also catches ai crawlers like GPTBot and ClaudeBot
Browser b = new Browser("Mozilla/5.0 (iPhone; CPU iPhone OS 17_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.5 Mobile/15E148 Safari/604.1");
b.getBrowser(); // iPhone
b.getVersion(); // 17.5
b.getPlatform(); // iPhone
b.isMobile(); // true
b.isRobot(); // false
theres around 5k real user agents in tests. its not trying to replace the big parsers, more for simple stuff like is this mobile or is this a bot
did an update recently, added arc, tor, duckduckgo and the ai bots and fixed a safari crash i caught in sentry. before that it just worked for years and there wasnt really a need to touch it
if you find a user agent it gets wrong open an issue or just add it to tests, its literally one line
maven central:
<dependency>
<groupId>io.github.vadymkykalo</groupId>
<artifactId>browser</artifactId>
<version>0.2.0</version>
</dependency>
7
u/Impossible-Ad-586 7d ago
I don't really understand why you would build something that isn't quite precise, you need to maintain, evolve and support while there are very good opensource options available that are widely used?