Changelog

All notable changes to this project will be documented in this file.

The format is partially following Keep a Changelog, except that the changes are grouped by meaningfulness type (features, updates, chores) and not by change type (added, changed, deprecated, removed, fixed, security). Instead, change types are added as prefixed label + special breaking change label.

Starting from version 1.0.0, this project will adheres to Break Versioning. Until then, version 0.x.x is considerd beta and breaking changes may be introduced in each version.

Unreleased

0.0.10 - 2026-06-29

Chores

  • Fixed missing erb dependency causing runtime crash (#119)
  • Fixed removed some explicit dependencies in Gemfile that were introduced as temporary fixes waiting for upstream handling

0.0.9 - 2026-06-28

Features

  • Added reverse normalization
    • Lib: Unisec::Normalization.reverse_normalize
    • CLI: unisec normalize reverse
  • Added reverse hexdump (search which characters will give this resulting encoded value)
    • Lib: Unisec::Hexdump.reverse
    • CLI: unisec dump rev
  • Added reverse blocks search (search in which Unicode block a given character is)
    • Lib: Unisec::Blocks.reverse
    • CLI: unisec blocks reverse
  • Added reverse planes search (search in which Unicode plane a given character is)
    • Lib: Unisec::Planes.reverse
    • CLI: unisec planes reverse
  • Added planes block search (search in which Unicode plane a block is)
    • Lib: Unisec::Planes.block
    • CLI: unisec planes block
  • Added new utils method:
    • Unisec::Utils::Arguments.to_array_of_sym
    • Unisec::Utils::Arguments.argenc2enc
  • Added shell completion for CLI
  • Changed Also display the short form of the subcategory in Properties.char
  • Changed Properties.char now also display the plane

Chores

  • Breaking change - Removed support for Ruby 3.2 (EOL)

0.0.8 - 2026-03-01

Features

  • Added new CLI commands:
    • unisec dump codepoints standard: Code point dump (standard format) #32
    • unisec dump codepoints integer: Code point dump (integer format) #32
  • Changed the properties char command to also return the code point in numeric value #29
  • Added utils method:
    • Unisec::Utils::String.chars2intcodepoints

Chores

  • Fixed gem release based on outdated commit
  • Fixed char2codepoint and chars2codepoints documentation examples

0.0.7 - 2026-03-01

Features

  • Added new Unisec::Decdump class to provide decimal dumps
    • CLI impact:
      • change unisec hexdump ➡️ unisec dump hex
      • new unisec dump dec
  • Breaking change - Changed Moved deccp2stdhexcp, char2codepoint and chars2codepoints from Properties to Utils
  • Added blocks & planes #43
    • Lib: Unisec::Blocks & Unisec::Planes
    • CLI:
      • unisec blocks list - List all Unicode blocks
      • unisec blocks search - Search for a specific block
      • unisec blocks invalid - List all invalid and unassigned ranges
      • unisec planes list - List all Unicode planes
      • unisec planes search - Search for a specific plane
  • Added new utils method:
    • Unisec::Utils::String.to_range
    • Unisec::Utils::Range.range2codepoint_range
    • String.to_bool
    • Range.include_range?
  • Changed Unisec::Utils::String.convert was improved:
    • To support :char as target_type

Updates

  • Changed Update DerivedName from 15.1.0 to 17.0.0
  • Changed Dependencies update

Chores

  • Added support for Ruby 3.4 & 4.0
  • Breaking change - Removed support for Ruby 3.0 & 3.1 (EOL)
  • Added tests for Utils
  • Added a rake task to update Unicode data files
  • Changed Enhanced installation documentation

0.0.6 - 2024-05-17

Features

  • Prepare a XSS payload for HTML escape bypass (HTML escape followed by NFKC / NFKD normalization)
    • Changed Renamed CLI command normalize into normalize all
    • Added a new method replace_bypass in the class Unisec::Normalization
    • Added a new CLI command normalize replace (using the new replace_bypass method)

0.0.5 - 2026-02-16

Features

  • Added a new class Unisec::Normalization and CLI command normalize to output all normalization forms

Updates

  • Changed Dependencies updated

Chores

  • Changed Enhanced documentation

0.0.4 2024-01-23

Features

  • Added a new class Unisec::Bidi::Spoof and CLI command bidi spoof to craft payloads for attack using BiDi code points like RtLO, for example, for spoofing a domain name or a file name
  • Added a new helper method: Unisec::Utils::String.grapheme_reverse: Reverse a string by graphemes (not by code points)
  • Added an --enc option for unisec hexdump to output only in the specified encoding
  • Changed unisec hexdump can now read from STDIN if the input equals to -

0.0.3 - 2023-10-18

Features

  • Added a new class Unisec::Rugrep and CLI command grep to search for Unicode code point names by regular expression
  • Added a new method Unisec::Properties.deccp2stdhexcp: Convert from decimal code point to standardized format hexadecimal code point

Chores

  • Changed Enhanced tests: assert_equal(true, test) ➡️ assert(test)
  • Changed Enhanced SEO: better description

0.0.2 - 2023-08-18

Features

  • Added 2 new classes (and corresponding CLI command):
    • Unisec::Versions: Version of Unicode, ICU, CLDR, gems used in Unisec
    • Unisec::Size: Code point, grapheme, UTF-8/UTF-16/UTF-32 byte/unit size

0.0.1 - 2023-07-21

Features

  • Added Initial version