This package is abandoned and no longer maintained. The author suggests using the ua-parser/uap-php package instead.

A multi-language port of Browserscope's user agent parser.

Installs: 80 631

Dependents: 2

Suggesters: 0

Security: 0

Stars: 1 985

Watchers: 129

Forks: 519

Open Issues: 0


v0.3.5 2014-11-30 16:13 UTC

This package is not auto-updated.

Last update: 2022-02-01 12:30:50 UTC


This project has moved to a new project space ua-parser, separating the regexes from the parsers for the different languages into their own repos:

  • uap-core : The regex file necessary to build language ports of Browserscope's user agent parser.
  • uap-clj : Clojure implementation of ua-parser
  • uap-cpp : C++ implementation of ua-parser
  • uap-csharp : C# implementation of ua-parser
  • uap-d : D implementation of ua-parser
  • uap-go : Go implementation of ua-parser
  • uap-haskell : Haskell implementation of ua-parser
  • uap-java : Java implementation of ua-parser
  • uap-perl : Perl implementation of ua-parser
  • uap-php : PHP implementation of ua-parser
  • uap-pig : Pig implementation of ua-parser
  • uap-python : Python implementation of ua-parser
  • uap-r : R implementation of ua-parser
  • uap-ruby : A simple, comprehensive Ruby gem for parsing user agent strings with the help of BrowserScope's UA database
  • uap-ref-impl : JavaScript reference implementation of ua-parser.

Please contribute to the respective repositories! Thanks.

ua-parser Build Status

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.