A .NET library for manipulating and displaying strings, enums, dates, times, numbers, and quantities in a human-friendly way.
Humanizer is a .NET library that converts machine-readable data into human-friendly formats. It handles strings, enums, dates, times, numbers, and quantities, automating tasks like adding spaces to enum names, showing relative dates, and pluralizing words. It solves the problem of presenting technical data in a way that is easy for end-users to understand.
.NET developers building applications that require user-friendly text formatting, such as web apps, desktop software, or APIs that need localized and readable output.
Developers choose Humanizer because it eliminates repetitive formatting code, supports multiple languages out-of-the-box, and provides a consistent, fluent API for common humanization tasks, saving time and reducing errors.
Humanizer meets all your .NET needs for manipulating and displaying strings, enums, dates, times, timespans, numbers and quantities
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Unifies string, enum, date, number, and byte size humanization in one library, eliminating the need for multiple packages. The README shows examples from PascalCase conversion to relative time and file size formatting.
Offers multi-language packages for dates, numbers, and strings across many cultures, making internationalization straightforward. For instance, relative time humanization works in Arabic and Russian as demonstrated.
Provides intuitive syntax like 2.Days() + 3.Hours() for date math and 3.Thousands() for large numbers, reducing boilerplate code compared to verbose DateTime methods.
Allows adding custom inflection rules via Vocabularies.Default.AddIrregular() and implementing IStringTransformer for domain-specific transformations, as noted in the Inflector methods section.
Requires .NET SDK 9.0.200 or newer for the metapackage, with older tooling failing to restore—a documented hurdle that can block teams on legacy systems.
Key features like 'Words to Number Conversion' are English-only, throwing NotSupportedException for other locales, limiting utility in multilingual apps.
Version 3.0 introduced behavioral shifts, such as altered Humanize output for strings with no letters, forcing migration work and potential bugs.
The all-languages metapackage pulls in unnecessary dependencies if you only need English, and the abstraction layer may impact performance for trivial tasks.