| Version | Highlights |
|---|---|
| v2.7.0 | Grouping API + search improvements + CI |
| v2.6.0 | Indexed search engine |
| v2.5.0 | Metadata-driven architecture |
| v2.1.0 | Helper APIs & improved search |
| v2.0.0 | Structured category API |
A metadata-driven Unicode symbol engine for Python.
Symjoy provides clean, structured, and intelligent access to Unicode characters including:
- Emojis 😄
- Symbols ❤️
- Arrows →
- Mathematical symbols π
- Currency signs ₹
- Miscellaneous icons ☀️
Designed for:
- 💬Chat applications
- 🎮 Games
- 📚Educational tools
- 💰 Financial systems
- ⚙️ Developer utilities
- JSON-backed data architecture.
- Lazy-loaded registry.
- Automatic keyword enrichment.
- Semantic relationship graph.
- Multilingual alias support.
- ⚡Indexed search engine.
- Deterministic search ordering.
- Category-isolated APIs.
- Backward compatible with v2.x.
pip install symjoyRequired Python version: 3.12+
from symjoy import emoji, symbols, arrows, math, currency, misc, search
print(emoji.get("smile")) # 😄
print(symbols.get("heart")) # ❤️
print(arrows.get("right")) # →
print(math.get("pi")) # π
print(currency.get("rupee")) # ₹
print(misc.get("sun")) # ☀️
print(emoji.random()) # Random emojiEach category exposes a consistent interface:
get(name) -> str | None
exists(name) -> bool
info(name) -> dict | None
random() -> str | None
list() -> list[str]
items() -> dict[str, str]
related(name) -> list[dict]
by_group(group) -> list[dict]Example:
from symjoy import emoji
print(emoji.list())
print(emoji.related("heart"))
print(emoji.by_group("emotion"))Search across all categories:
from symjoy import search
results = search("heart")Search is ranked by:
- Exact match.
- Keyword match.
- Alias match.
- Token match.
search("smile face")
search("red heart")Introduced a fully data-driven system::
- JSON-driven data storage
- Runtime metadata enrichment
- Automatic keyword generation
- Token-based relationship graph
- Category-agnostic registry
emoji.related("heart")
search("joy")Introduces internal indexing for high-performance queries.
- Names.
- Keywords.
- Aliases.
- Tokens.
- Faster lookups.
- Scalable architecture.
- Reduced full-registry scans.
- Improved query precision.
v2.7.0 introduces semantic grouping and enhanced search capabilities.
Symbols are now organized into semantic groups:
- emotion
- gesture
- nature
- object
- activity
- symbolic
from symjoy import emoji
emoji.by_group("emotion")Search now supports:
- multi-token queries
- keyword + alias + token indexing
- deterministic ranking
search("smile face")
search("red heart")- CI automation (GitHub Actions)
- Improved test coverage
- Stabilized registry + index pipeline
Version 2.x still supports legacy v1-style access:
from symjoy import emojis
print(emojis["smile"])- Pypi: https://pypi.org/project/symjoy/
- Github: https://github.com/vishwanathdvgmm/symjoy
- Github issues: https://github.com/vishwanathdvgmm/symjoy/issues
- Email: vishwanathdvgmm@gmail.com
MIT License