Skip to content

v2.0.0

Choose a tag to compare

@felldo felldo released this 29 Sep 10:15
· 10 commits to master since this release

Highlights

  • Support for Java < 17 has been dropped. The minimum required Java version is now 17. v1.7.6 is the last release that supports Java 8.
  • JEmoji is now a proper JPMS module (net.fellbaum.jemoji and net.fellbaum.jemoji.languages). The Multi-Release JAR setup has been removed.

Breaking Changes

  • Emoji no longer implements java.io.Serializable
  • Emoji data is now loaded with Jackson 3, which adds tools.jackson.core:jackson-databind as a runtime dependency
  • org.jspecify is now an api dependency for nullability annotations
  • Internal classes have moved to the net.fellbaum.jemoji.internal package. The module only exports this package to net.fellbaum.jemoji.languages.

Improvements

  • Switch back to Jackson for emoji serialization (JSON instead of Java-serialized .ser files, including the language module)
  • Improve performance of various methods:
    • Codepoints are precomputed per emoji, with the new Emoji#getEmojiCodePoints()
    • Emoji lookup data is precomputed and centralized
  • Improved immutability throughout the codebase (records, List.copyOf, Stream#toList)

Emoji Data

  • Updated emoji data and added missing emoji aliases

Internal / Build

  • New separate emoji-generator module for the code generation
  • Updated to Gradle 9.4.1 and Kotlin 2.3.20
  • Added unit tests for emoji modifiers, aliases, encodings and metadata
  • Fixed the README (typos, wording)

Full Changelog: v1.7.6...v2.0.0