A multi-language port of Browserscope's user agent parser.
Java Perl PHP C# Python C++ Other
Pull request Compare This branch is 25 commits ahead, 2 commits behind tobie:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
cpp
csharp
d
go
haskell
java
js
perl
php
pig
py/ua_parser
test_resources
tests
.gitattributes
.gitignore
.npmignore
.travis.yml
CONTRIBUTING.md
LICENSE.txt
MANIFEST.in
README.markdown
composer.json
package.json
pom.xml
regexes.yaml
setup.py

README.markdown

Caution: This project is a fork of the User Agent String Parser, which is currently found on GitHub at https://github.com/ua-parser. The Java implementation is located at https://github.com/ua-parser/uap-java.

Why is there a fork?

Unfortunately, the upstream project does not appear to publish artifacts to Maven Central, and releases are quite infrequent. This fact necessitated the creation of a fork, as we needed the ability to publish an artifact within our Sonatype Nexus repository. In addition, the upstream version contains a security vulnerability that is mitigated within our fork.

What is different?

  • The project has been modified to use the BV Super POM.
  • The linked version of Apache Commons has been upgraded to mitigate a security vulnerability.
  • The project structure differs from that of the upstream project, which has moved to a different repository since the original fork appeared.
  • This version has been patched to include the changes made between upstream 1.2.0 and 1.3.1, while still preserving the old directory structure.
  • This version includes the newest (as of 1.3.1) regex patterns and tests, which include detection support for browsers like Microsoft Edge.

ua-parser

ua-parser is a multi-language port of BrowserScope's user agent string parser.

The crux of the original parser--the data collected by Steve Souders over the years--has been extracted into a separate YAML file so as to be reusable as is by implementations in other programming languages. ua-parser is just a small wrapper around this data, along with ongoing improvements to the definitions.

Note that ua-parser has now been split out into multiple, distinct repositories, one for the core definitions and one for each language implementation. Patches and issues should be raised at those repositories, rather than this one.