An Elixir/Erlang library providing low-level operations for handling Emoji glyphs in the Unicode standard.
Exmoji is an Elixir/Erlang library that provides low-level operations for working with Emoji glyphs in the Unicode standard. It handles complex encoding issues like doublebyte encoding and variant forms, making it essential for applications where Emoji processing is fundamental. The library offers functions for searching, converting, and scanning Emoji with high performance and accuracy.
Elixir and Erlang developers building applications that require robust, production-scale Emoji handling, such as social media analytics, messaging platforms, or content processing systems where Emoji encoding correctness is critical.
Developers choose Exmoji over simpler alternatives because it addresses advanced Emoji encoding complexities like variants and doublebyte characters, ensuring proper display and processing. It is optimized for performance with fast binary pattern matching and is built by an author with proven experience in high-volume Emoji tracking, prioritizing reliability and speed.
:sunglasses: Emoji encoding swiss army knife for Elixir/Erlang
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Uses optimized binary pattern matching instead of regex, making it faster for scanning strings, as demonstrated in the Exmoji.Scanner module with efficient UTF-8 Emoji detection.
Includes all standard Emoji with variants (845 total, 107 with variants), providing full metadata like names and unified codes, as shown in Exmoji module functions for detailed searches.
Handles complex issues like doublebyte encoding and variant forms to ensure correct display, addressing problems highlighted in the README such as proper rendering with EmojiChar.render/1.
Built by an author with experience in high-volume Emoji tracking (Emojitracker.com), ensuring it's tested in real-world scenarios parsing over 100M+ glyphs daily.
Only available for Elixir and Erlang, making it unsuitable for projects using other tech stacks, with no cross-language ports or alternatives mentioned.
As admitted in the README, it's not ideal for basic Emoji substitution, adding unnecessary complexity for tasks like simple string replacement without encoding issues.
Focuses solely on backend processing, lacking built-in UI components for Emoji display or pickers, which requires additional frontend work for full application integration.