A comprehensive browser and platform detection library for Elixir, ported from the Ruby browser library.
Elixir Browser is a library for detecting browsers, platforms, devices, and versions from user-agent strings in Elixir applications. It helps developers customize web experiences, perform compatibility checks, and filter traffic based on client attributes. The library is a direct port of the popular Ruby browser library, bringing comprehensive detection capabilities to the Elixir ecosystem.
Elixir and Phoenix developers who need to parse user-agent strings for browser-specific logic, device targeting, or analytics in web applications.
Developers choose Elixir Browser for its extensive detection features, seamless integration with Plug connections, and reliability as a port from a well-established Ruby library, making it a trusted tool for client-side detection in Elixir projects.
Browser detection for Elixir
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Offers a wide range of specific checks for browsers, platforms, devices, and bots, as evidenced by functions like Browser.ie?(ua, 6) for version-specific detection and Browser.full_display(ua) for detailed summaries.
Allows direct passing of Elixir Plug connections to extract user-agent headers, simplifying usage in Phoenix applications without manual string parsing.
Includes a modern? function to identify browsers like Webkit, Firefox 17+, and IE 9+, enabling easy compatibility checks for progressive enhancement.
Supports a custom bots.txt file via configuration, allowing tailored bot detection for specific project needs, though it requires recompilation after changes.
Missing meta and language detection features from the original Ruby library, limiting comprehensive user-agent analysis as admitted in the README.
Changes to the bots file require recompiling the library, which is inconvenient for dynamic environments and can disrupt development workflows.
Relies on the underlying Ruby library for detection logic, so updates to support new user-agent strings might be delayed, affecting accuracy over time.