PackageTrack
Sign in Get early access

characters

String replacement with operations that are Unicode/grapheme cluster aware.

1.4.1 1000K downloads/mo #61 most downloaded on pub.dev dart-lang/core

What this package is like to depend on

Last release 1 years ago

25 Jun 2025

Release timing varies

gaps range from 8 days to 1.7 years

Nearly every release is documented

notes for 12 of 12 stable releases

Nothing withdrawn

no release was ever pulled

7 years old

18 releases · first in 2019

0 releases in the last 12 months

see the full history below

Release timeline

18 releases · Oct 2019 to Jun 2025
2020 2021 2022 2023 2024 2025 2026
Release Pre-release

Releases

latest 18
  1. 1.4.1 25 Jun 2025
    Release notes
    • Run dart format with the new style.
    • Performance improvement for non-BMP characters.
    Open source →
    Release notes
    • Run dart format with the new style.
    • Performance improvement for non-BMP characters.
    Open source →
  2. 1.4.0 11 Dec 2024
    Release notes

    update the pubspec version of package:collection (#730)

    Open source →
    Release notes
    • Updated to use Unicode 16.0.0.
    Open source →
  3. 1.3.1 16 Oct 2024
    Release notes
    • Fixed README rendering on pub.dev and API docs.
    • Require Dart ^3.4.0.
    • Move to dart-lang/core monorepo.
    Open source →
  4. 1.3.0 17 Feb 2023
    Release notes
    • Updated to use Unicode 15.0.0.
    Open source →
  5. 1.2.1 04 May 2022
    Release notes
    • Update the value of the pubspec repository field.
    Open source →
  6. 1.2.0 13 Sep 2021
    Release notes
    • 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.
    Open source →
  7. 1.1.0 02 Feb 2021
    Release notes
    • 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.
    Open source →
  8. 1.1.0-nullsafety.5 03 Nov 2020 pre-release

    Nothing published for this version

  9. 1.1.0-nullsafety.4 22 Oct 2020 pre-release

    Nothing published for this version

  10. 1.1.0-nullsafety.3 22 Sep 2020 pre-release

    Nothing published for this version

  11. 1.1.0-nullsafety.2 22 Jul 2020 pre-release

    Nothing published for this version

  12. 1.1.0-nullsafety.1 17 Jul 2020 pre-release

    Nothing published for this version

  13. 1.1.0-nullsafety 08 Jul 2020 pre-release

    Nothing published for this version

  14. 1.0.0 09 Jun 2020
    Release notes
    • Core APIs deemed stable; package version set to 1.0.0.
    • Added split methods on Characters and CharacterRange.
    Open source →
  15. 0.5.0 05 Dec 2019
    Release notes
    • 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.
    Open source →
  16. 0.4.0 13 Nov 2019
    Release notes
    • 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

    Open source →
  17. 0.3.1 25 Oct 2019
    Release notes
    • Added small example in example/main.dart
    • Enabled pedantic lints and updated code to resolve issues.
    Open source →
  18. 0.3.0 22 Oct 2019
    Release notes
    • Updated API which does not expose the underlying string indices.
    Open source →

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive