Files
mail/crates/parley_emoji

Parley Emoji

Unicode emoji presentation resolution

Latest published version. Documentation build status. MIT license.
Linebender Zulip chat. GitHub Actions CI status. Dependency staleness status.

Emoji presentation resolution for text layout, translated from Christian Hansen's c-emoji.

Some Unicode characters and sequences can be displayed either as ordinary text glyphs or as emoji. This crate determines the preferred presentation of a grapheme cluster from its Unicode emoji properties, variation selectors, and sequence structure. The implementation recognizes the emoji sequences defined by Unicode Technical Standard #51.

WARNING: This crate is currently designed only for use within Parley; if you have a use case for it, please reach out. This crate exists entirely because the code it adapts doesn't match Parley's existing license, but is otherwise currently treated as an internal implementation detail of Parley.

In Parley, this impacts font selection for these clusters.

Features

The following crate feature flags are available:

  • std (enabled by default): This is currently unused and is provided for forward compatibility.

Note that Parley Emoji currently requires that an allocator is available (i.e. it depends on alloc). Currently, Parley Emoji does not actually allocate, but the dependency is kept so starting to allocate in the future is not a breaking change.

Minimum supported Rust Version (MSRV)

This version of Parley Emoji has been verified to compile with Rust 1.88 and later.

Future versions of Parley Emoji might increase the Rust version requirement. It will not be treated as a breaking change and as such can even happen with small patch releases.

Community

Discussion of Parley Emoji development happens in the Linebender Zulip, specifically the #parley channel. All public content can be read without logging in.

License

Licensed under the MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT). This crate contains code derived from C-Emoji. Note that this is a different license and copyright notice than the rest of the Parley repository. Therefore, code from this crate cannot be copied into the rest of Parley, and must be used through the public API.

Contribution

Contributions are welcome by pull request. The Rust code of conduct applies. Please feel free to add your name to the AUTHORS file in any substantive pull request.

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you shall be licensed as above, without any additional terms or conditions.