EmojiMixer 2.2.1

dotnet add package EmojiMixer --version 2.2.1
                    
NuGet\Install-Package EmojiMixer -Version 2.2.1
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="EmojiMixer" Version="2.2.1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="EmojiMixer" Version="2.2.1" />
                    
Directory.Packages.props
<PackageReference Include="EmojiMixer" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add EmojiMixer --version 2.2.1
                    
#r "nuget: EmojiMixer, 2.2.1"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package EmojiMixer@2.2.1
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=EmojiMixer&version=2.2.1
                    
Install as a Cake Addin
#tool nuget:?package=EmojiMixer&version=2.2.1
                    
Install as a Cake Tool

Emoji Mixer

CI npm PyPI crates.io Go Reference JSR Packagist Gem NuGet License: MIT

Get the URL of a Google Emoji Kitchen image for two emojis.

Install

npm install emoji-mixer   # JavaScript / TypeScript, Node.js 20.19+
pip install emoji-mixer   # Python 3.10+
cargo add emoji-mixer     # Rust
go get github.com/MattFor/emoji-mixer/v2   # Go 1.21+
deno add jsr:@mattfor/emoji-mixer   # Deno, or npx jsr add @mattfor/emoji-mixer
composer require mattfor/emoji-mixer   # PHP 8.2+
gem install emoji_mixer   # Ruby 3.3+
dotnet add package EmojiMixer   # .NET 10+

Usage

import getEmojiMixUrl from 'emoji-mixer';
// or: const { default: getEmojiMixUrl } = require("emoji-mixer");

getEmojiMixUrl('🔥', '😃');
// https://www.gstatic.com/android/keyboard/emojikitchen/20201001/u1f603/u1f603_u1f525.png
from emoji_mixer import get_emoji_mix_url

get_emoji_mix_url("🔥", "😃")
emoji_mixer::get_emoji_mix_url("🔥", "😃"); // Some(url)
import emojimixer "github.com/MattFor/emoji-mixer/v2"

url, err := emojimixer.EmojiMixURL("🔥", "😃")
use MattFor\EmojiMixer\EmojiMixer;

EmojiMixer::getEmojiMixUrl('🔥', '😃');
require "emoji_mixer"

EmojiMixer.emoji_mix_url("🔥", "😃")
using EmojiMixer;

EmojiKitchen.GetEmojiMixUrl("🔥", "😃");

Emojis can be passed as characters ("☕") or codepoint strings ("2615", "1F600", "2764-fe0f"). The FE0F variation selector is optional.

Functions

  • getEmojiMixUrl(leftEmoji, rightEmoji, detailedErrors = false) (default export)
    Returns the image URL, or undefined if an emoji is unsupported or the pair has no mix. With detailedErrors, throws an error explaining why instead.

  • toUnicode(input)
    Returns the codepoint key of one supported emoji, e.g. "☕" → "2615", or undefined.

  • getEmojiCombo(leftEmoji, rightEmoji)
    Takes two codepoint keys and returns the newest { leftEmoji, rightEmoji, date } combination, or undefined. leftEmoji and rightEmoji are in the order Google hosts the image under, which may differ from the argument order.

  • checkSupported(emoji)
    Returns every combination containing the emoji (on either side), or null if it is unsupported.

  • googleRequestUrl(combo) / googleRequestUrlEmojiPart(emoji)
    Build the image URL from a combination / format one emoji for the URL.

  • getExpandedEmojiCompatibilityData(useCache = false)
    Returns { [emoji]: combination[] } for every supported emoji.

  • supportedEmojis, emojiCompatibilityData, baseUrl
    The supported codepoint keys, the compressed database and the image base URL.

Python has the same API in snake_case (get_emoji_mix_url, to_unicode, …, BASE_URL). It returns None instead of undefined/null, detailed_errors raises ValueError, and combinations are EmojiCombo(left_emoji, right_emoji, date) named tuples.

Rust has get_emoji_mix_url, to_unicode, get_emoji_combo, check_supported, google_request_url, google_request_url_emoji_part, supported_emojis() and BASE_URL, returning Options.

Go has EmojiMixURL (an error says why there is no URL), ToUnicode, EmojiCombo, CheckSupported, ExpandedEmojiCompatibilityData, GoogleRequestURL, GoogleRequestURLEmojiPart, SupportedEmojis() and BaseURL; lookups return (value, ok) and combinations are Combo{LeftEmoji, RightEmoji, Date}.

JSR is the same TypeScript as the npm package.

PHP has the same API as static methods of MattFor\EmojiMixer\EmojiMixer (getEmojiMixUrl, toUnicode, …, BASE_URL), returning null; $detailedErrors throws InvalidArgumentException, and combinations are EmojiCombo objects with leftEmoji, rightEmoji and date.

Ruby has EmojiMixer.emoji_mix_url(left, right, detailed_errors: false), to_unicode, emoji_combo, check_supported, expanded_emoji_compatibility_data, google_request_url, google_request_url_emoji_part, supported_emojis and BASE_URL, returning nil; detailed_errors raises ArgumentError, and combinations are EmojiMixer::EmojiCombo values.

C# has the same API as static members of EmojiMixer.EmojiKitchen (GetEmojiMixUrl, ToUnicode, …, SupportedEmojis, BaseUrl), returning null; detailedErrors throws ArgumentException, and combinations are EmojiCombo(LeftEmoji, RightEmoji, Date) records.

Data format

emojiCompatibilityData is generated from emojikitchen.dev by converter.ts:

{
    "$d": [20201001, 20260128],   // unique dates
    "$e": [9749, 9800],           // unique emojis: codepoints as integers, sequences as strings
    "2615": [[0, 0], [1, 1]],     // [emojiIndex, dateIndex]
    "2648": [[-1, 1]]
}

A negative emojiIndex (~i) means the key emoji is the right-hand emoji in Google's URL. Above, both entries [1, 1] and [-1, 1] describe ☕ (left) + ♈ (right).

Attributions

License

MIT, see LICENSE. By MattFor.

Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net10.0

    • No dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
2.2.1 0 10/31/2026
2.2.0 43 10/30/2026