• Update the value of the pubspec repository field.


  • Fix Characters.where which unnecessarily did the iteration and test twice.
  • Adds Characters.empty constant and makes Characters("") return it.
  • Changes the argument type of Characters.contains to (covariant) String. The implementation still accepts Object?, so it can be cast to Iterable<Object?>, but you get warned if you try to call directly with a non-String.


  • Stable release for null safety.
  • Added stringBeforeLength and stringAfterLength to CharacterRange.
  • Added CharacterRange.at constructor.
  • Added getRange(start, end) and characterAt(pos) to Characters as alternative to .take(end).skip(start) and getRange(pos, pos + 1).
  • Change some positional parameter names from other to characters.


  • Core APIs deemed stable; package version set to 1.0.0.
  • Added split methods on Characters and CharacterRange.


  • Change [codeUnits] getter to [utf16CodeUnits] which returns an iterable. This avoids leaking that the underlying string has efficient UTF-16 code unit access in the API, and allows the same interface to be just as efficiently implemented on top of UTF-8.


  • Added an extension method on String to allow easy access to the Characters of the string:

    print('The first character is: ' + myString.characters.first)
  • Updated Dart SDK dependency to Dart 2.6.0


  • Added small example in example/main.dart
  • Enabled pedantic lints and updated code to resolve issues.


  • Updated API which does not expose the underlying string indices.


  • Initial release