An Elixir library for parsing user agent strings to identify browsers, operating systems, devices, and bots.
UAInspector is an Elixir library that parses user agent strings to extract detailed information about browsers, operating systems, devices, and bots. It solves the problem of interpreting raw HTTP user agent headers by converting them into structured, usable data for applications. The library uses the Matomo device-detector database to ensure comprehensive and up-to-date parsing capabilities.
Elixir developers building web applications, analytics platforms, or services that require client environment detection, such as content personalization, compatibility checks, or traffic analysis.
Developers choose UAInspector for its seamless Elixir integration, detailed parsing results, and reliance on the well-maintained Matomo database. It offers a simple API with flexible configuration, making it a reliable choice for accurate user agent analysis without external API dependencies.
User agent parser library
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Returns comprehensive structs for clients, operating systems, devices, and bots with version information, as shown in the parse examples for iPad and Googlebot.
Leverages the Matomo database to identify and categorize bots, including producer details and URLs, enhancing analytics and security.
Allows customization of database sources and storage paths through UAInspector.Config, providing control over data management without locking into defaults.
Can be started as part of an application or supervised manually via UAInspector.Supervisor, offering deployment flexibility for different Elixir setups.
Requires explicit calls to download or update the database via mix tasks or UAInspector.Downloader.download/0, which isn't automated and adds operational overhead.
Parsing accuracy hinges on the Matomo database's release cycle, so updates may lag behind new user agents, risking incomplete detection.
Database files are stored locally in the priv_dir, increasing application size, which can be problematic for resource-limited environments like edge deployments.