{"id":1035,"library":"ua-parser-builtins","title":"Precompiled rules for User Agent Parser","description":"ua-parser-builtins provides a precompiled ruleset for the `ua-parser` library, aiming to decrease its initialization times. This package itself does not expose any API; it solely contains the data. The precompiled ruleset is released monthly, synchronized with the `uap-core` project's default branch. The current version is 202603, released March 2026.","status":"active","version":"202603","language":"python","source_language":"en","source_url":"https://github.com/ua-parser/uap-python","tags":["user agent","parsing","performance","data","web"],"install":[{"cmd":"pip install ua-parser-builtins","lang":"bash","label":"Install ua-parser-builtins"},{"cmd":"pip install 'ua-parser[regex]' ua-parser-builtins","lang":"bash","label":"Recommended: Install with ua-parser (regex backend)"}],"dependencies":[{"reason":"This package provides precompiled data for 'ua-parser'. It has no API of its own and is useless without 'ua-parser' installed to consume its data.","package":"ua-parser","optional":false}],"imports":[{"note":"Imports are from 'ua-parser', as 'ua-parser-builtins' provides data, not direct API.","symbol":"parse","correct":"from ua_parser import parse"}],"quickstart":{"code":"from ua_parser import parse\n\n# ua-parser-builtins implicitly provides the data used by parse()\nuser_agent_string = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.104 Safari/537.36'\nparsed_ua = parse(user_agent_string)\n\nprint(f\"User Agent Family: {parsed_ua.user_agent.family}\")\nprint(f\"OS: {parsed_ua.os.family} {parsed_ua.os.major}.{parsed_ua.os.minor}\")\nprint(f\"Device Family: {parsed_ua.device.family}\")\n","lang":"python","description":"This quickstart demonstrates the usage of the `ua-parser` library, which is the consumer of the precompiled rules provided by `ua-parser-builtins`. Installing `ua-parser-builtins` along with `ua-parser` will reduce the initialization time of the parser."},"warnings":[{"fix":"Always install 'ua-parser' (e.g., `pip install ua-parser ua-parser-builtins`) to utilize the provided data.","message":"ua-parser-builtins has no direct API or functionality. It is purely a data package designed to be used by the 'ua-parser' library to speed up its initialization. Installing it alone will not provide user agent parsing capabilities.","severity":"gotcha","affected_versions":"All versions"},{"fix":"Install with `pip install 'ua-parser[regex]' ua-parser-builtins` or `pip install 'ua-parser[re2]' ua-parser-builtins`.","message":"For optimal parsing performance, especially with high-volume user agent strings, consider installing 'ua-parser' with its optional 'regex' or 're2' dependencies. Even with 'ua-parser-builtins' reducing initialization time, the underlying parsing engine within 'ua-parser' affects speed.","severity":"gotcha","affected_versions":"All versions of ua-parser and ua-parser-builtins"},{"fix":"Keep `ua-parser-builtins` updated regularly (e.g., monthly) to ensure the `ua-parser` library benefits from the latest user agent detection rules.","message":"The versioning scheme for ua-parser-builtins is date-based (YYYYMM). This indicates a refresh of the underlying ruleset, but unlike semantic versioning, it doesn't directly signal API or functionality changes, as the package has no API. Users should be aware that frequent updates reflect new user-agent patterns.","severity":"gotcha","affected_versions":"All versions"},{"fix":"Before installing 'ua-parser', ensure the necessary build dependencies are installed in the environment. For Alpine Linux, this typically involves running `apk add build-base rust`.","message":"Installing 'ua-parser' (or its dependencies like 'ua-parser-rs') on Alpine Linux or similar minimal environments may fail due to missing build dependencies required by its underlying Rust component. Specifically, it requires a C compiler (providing 'libgcc_s.so.1') and the Rust toolchain, which are not included by default in minimal Python images.","severity":"breaking","affected_versions":"All versions of ua-parser that depend on Rust extensions, especially on Alpine Linux and other minimal distributions."}],"env_vars":null,"last_verified":"2026-05-12T22:54:59.458Z","next_check":"2026-06-27T00:00:00.000Z","problems":[{"fix":"Ensure `ua-parser-builtins` is installed (`pip install ua-parser-builtins`), then import and use `ua-parser` instead. The `ua-parser` library automatically leverages the builtins package if available.\n\n```python\n# Incorrect attempt:\n# import ua_parser_builtins\n# ua_parser_builtins.parse('User-Agent string')\n\n# Correct usage:\nfrom ua_parser import user_agent_parser\nresult = user_agent_parser.Parse('User-Agent string')\n```","cause":"The user attempted to import `ua_parser_builtins` directly, but this package is a data-only dependency for `ua-parser` and does not expose a public API for direct import and use.","error":"ModuleNotFoundError: No module named 'ua_parser_builtins'"},{"fix":"Import and use the `ua-parser` library for parsing functionality; it will automatically utilize `ua-parser-builtins` for faster initialization.\n\n```python\n# Incorrect attempt:\n# import ua_parser_builtins\n# result = ua_parser_builtins.Parse('User-Agent string')\n\n# Correct usage:\nfrom ua_parser import user_agent_parser\nresult = user_agent_parser.Parse('User-Agent string')\n```","cause":"The user incorrectly tried to call a parsing function directly on the `ua_parser_builtins` module, which is a data-only package and does not provide any callable API.","error":"AttributeError: module 'ua_parser_builtins' has no attribute 'Parse'"},{"fix":"Import `user_agent_parser` from the `ua-parser` library, which is the package that provides the parsing functionality. `ua-parser` will automatically use the data from `ua-parser-builtins` if it is installed.\n\n```python\n# Incorrect attempt:\n# from ua_parser_builtins import user_agent_parser\n# result = user_agent_parser.Parse('User-Agent string')\n\n# Correct usage:\nfrom ua_parser import user_agent_parser\nresult = user_agent_parser.Parse('User-Agent string')\n```","cause":"The user attempted to import a submodule or function (like `user_agent_parser`) directly from `ua_parser_builtins`, but this package is solely for data and does not expose any modules or functions for direct import.","error":"ImportError: cannot import name 'user_agent_parser' from 'ua_parser_builtins'"}],"ecosystem":"pypi","meta_description":null,"install_score":50,"install_tag":"draft","quickstart_score":null,"quickstart_tag":null,"pypi_latest":"202605","cli_name":"","install_checks":{"last_tested":"2026-05-12","tag":"draft","tag_description":"notable install failures or slow imports","installed_version":"0.18.0.post1","pypi_latest":"202605","is_stale":true,"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"regex","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"regex","exit_code":1,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"ua-parser-builtins","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"18.5M"},{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"ua-parser-builtins","exit_code":1,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"regex","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":1.8,"import_time_s":0.04,"mem_mb":2.4,"disk_size":"22M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"regex","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":0.04,"mem_mb":2.4,"disk_size":"22M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"ua-parser-builtins","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":1.5,"import_time_s":null,"mem_mb":null,"disk_size":"19M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"ua-parser-builtins","exit_code":1,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"regex","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"regex","exit_code":1,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"ua-parser-builtins","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"20.5M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"ua-parser-builtins","exit_code":1,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"regex","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":1.7,"import_time_s":0.09,"mem_mb":2.5,"disk_size":"24M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"regex","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":0.09,"mem_mb":2.5,"disk_size":"24M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"ua-parser-builtins","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":1.6,"import_time_s":null,"mem_mb":null,"disk_size":"21M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"ua-parser-builtins","exit_code":1,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"regex","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"regex","exit_code":1,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"ua-parser-builtins","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"12.3M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"ua-parser-builtins","exit_code":1,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"regex","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":1.6,"import_time_s":0.09,"mem_mb":2.4,"disk_size":"16M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"regex","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":0.1,"mem_mb":2.4,"disk_size":"16M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"ua-parser-builtins","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":1.5,"import_time_s":null,"mem_mb":null,"disk_size":"13M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"ua-parser-builtins","exit_code":1,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"regex","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"regex","exit_code":1,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"ua-parser-builtins","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"12.0M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"ua-parser-builtins","exit_code":1,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"regex","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":1.5,"import_time_s":0.08,"mem_mb":2.4,"disk_size":"16M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"regex","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":0.09,"mem_mb":2.4,"disk_size":"16M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"ua-parser-builtins","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":1.5,"import_time_s":null,"mem_mb":null,"disk_size":"13M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"ua-parser-builtins","exit_code":1,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"regex","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"regex","exit_code":1,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"ua-parser-builtins","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"17.9M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"ua-parser-builtins","exit_code":1,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"regex","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":2.1,"import_time_s":0.05,"mem_mb":2.4,"disk_size":"48M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"regex","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":0.06,"mem_mb":2.4,"disk_size":"48M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"ua-parser-builtins","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":1.8,"import_time_s":null,"mem_mb":null,"disk_size":"18M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"ua-parser-builtins","exit_code":1,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null}]},"quickstart_checks":{"last_tested":"2026-04-24","tag":null,"tag_description":null,"results":[{"runtime":"python:3.10-alpine","exit_code":1},{"runtime":"python:3.10-slim","exit_code":1},{"runtime":"python:3.11-alpine","exit_code":1},{"runtime":"python:3.11-slim","exit_code":1},{"runtime":"python:3.12-alpine","exit_code":1},{"runtime":"python:3.12-slim","exit_code":1},{"runtime":"python:3.13-alpine","exit_code":1},{"runtime":"python:3.13-slim","exit_code":1},{"runtime":"python:3.9-alpine","exit_code":1},{"runtime":"python:3.9-slim","exit_code":1}]}}