ua-parser / uap-scala

Scala port of ua-parser

Version Matrix


Build status Codecov status Maven Central

A Scala user-agent string parser based on ua-parser/uap-core. It extracts browser, OS and device information.


The code for this repository can be checked out normally. It uses a git submodule to include the files needed from uap-core so care must be taken to make sure the core directory is properly checked out and initialized.

Checking out the repo for the first time

git clone --recursive

If uap-scala was checked out and core was not properly initialized, the following can be done

cd core
git submodule update --init --recursive


To build for the default Scala (currently 2.11):

sbt package

To cross-build for different Scala versions:

sbt +package



You can link against this library in your program at the following coordinates:

Scala 2.10

groupId: org.uaparser
artifactId: uap-scala_2.10
version: 0.11.0

Scala 2.11

groupId: org.uaparser
artifactId: uap-scala_2.11
version: 0.11.0

Scala 2.12

groupId: org.uaparser
artifactId: uap-scala_2.12
version: 0.11.0

Scala 2.13

groupId: org.uaparser
artifactId: uap-scala_2.13
version: 0.11.0


import org.uaparser.scala.Parser

val ua = "Mozilla/5.0 (iPhone; CPU iPhone OS 5_1_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9B206 Safari/7534.48.3"
val client = Parser.default.parse(ua) // you can also use CachingParser
println(client) // Client(UserAgent(Mobile Safari,Some(5),Some(1),None),OS(iOS,Some(5),Some(1),Some(1),None),Device(iPhone))