awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
dustin avatar

dustin/go-humanize

0
View on GitHub↗
4,802 stars·251 forks·Go·26 viewspkg.go.dev/github.com/dustin/go-humanize↗

Go Humanize

go-humanize is a Go library for converting raw numbers, byte sizes, and durations into natural language strings to improve human readability.

The project provides specialized formatters for byte sizes using SI or IEC standards and a relative time formatter that transforms durations into descriptions such as three days ago. It also includes an SI unit formatter for converting numeric values to and from International System of Units prefixes and symbols.

Beyond technical units, the library includes English natural language utilities for pluralizing nouns, generating ordinal numbers, and joining word lists with grammatical conjunctions. Additional numeric tools handle thousands separators, decimal precision, and large number suffixes.

Features

  • Human-Readable Formatting Libraries - Provides a comprehensive suite of utilities for converting raw numbers, byte sizes, and durations into natural language strings.
  • Data Size Formatting - Transforms raw byte counts into human-readable units such as KB, MB, or GB.
  • Measurement Unit Parsers - Extracts numeric values and unit symbols from strings formatted with SI prefixes.
  • Byte Size Formatting - Transforms byte counts into human-readable strings using SI or IEC standards and binary prefixes.
  • Byte Size Parsers - Converts human-readable byte strings with size suffixes back into raw numeric byte values.
  • SI Unit Conversions - Translates numeric values into human-readable strings using SI prefixes and unit symbols.
  • Byte Size Formatting - Formats byte counts into human-readable strings using configurable precision and SI or IEC prefixes.
  • Data Magnitude Formatting - Provides utilities to convert raw byte counts and large numbers into human-readable strings using SI or IEC standards.
  • Human-Readable Numeric Formatting - Transforms large integers and floating point numbers into strings with thousands separators and natural language suffixes.
  • Natural Language List Formatting - Implements programmatic formatting of word lists into grammatically correct human-readable sentences.
  • Relative Time Formatting - Calculates and renders human-readable relative time descriptions based on duration magnitude thresholds.
  • Magnitude Suffixes - Converts large integers into human-readable strings using suffixes like thousand, million, or billion.
  • Pluralization Rules - Determines the correct English noun form based on numeric counts using regular and irregular grammar rules.
  • Ordinal Formatters - Converts integers into rank-based ordinal strings by appending correct English suffixes.
  • Word Form Converters - Converts English nouns to their plural forms based on numeric counts, including irregular plurals.
  • Thousands Separators - Adds thousands-separator commas to integers and floating-point numbers for improved readability.
  • English Linguistic Utilities - Provides tools for pluralizing nouns, formatting ordinal numbers, and joining word lists with grammatical conjunctions.
  • Ordinal Number Formatting - Appends specific English rank suffixes to integers based on the numeric value of the last digits.
  • Word Series Formatting - Constructs natural language lists by inserting commas and conjunctions between elements of a word series.
  • Numeric Formatting - Provides general numeric formatting including customizable separators, decimal symbols, and precision.
  • Text Processing - Converts data types into human-readable formats.

Star history

Star history chart for dustin/go-humanizeStar history chart for dustin/go-humanize

How this analysis was created: This summary and feature list are AI-generated from collected project material and can contain mistakes. Stars, license and language are imported from GitHub. Inclusion does not mean that we have tested or audited this project. Check the source documentation for any feature you depend on. Learn more on our About page.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Frequently asked questions

What does dustin/go-humanize do?

go-humanize is a Go library for converting raw numbers, byte sizes, and durations into natural language strings to improve human readability.

What are the main features of dustin/go-humanize?

The main features of dustin/go-humanize are: Human-Readable Formatting Libraries, Data Size Formatting, Measurement Unit Parsers, Byte Size Formatting, Byte Size Parsers, SI Unit Conversions, Data Magnitude Formatting, Human-Readable Numeric Formatting.

Which projects share features with dustin/go-humanize?

Projects with overlapping indexed features include: adamwdraper/numeral-js — Numeral-js is a JavaScript number formatting library used to convert raw numeric values into human-readable strings… humanizr/humanizer — Humanizer is a .NET natural language formatter and string manipulation library designed to convert technical… symfony/translation — Symfony Translation is a PHP library and framework component for internationalizing applications. It provides a… i18next/i18next — i18next is a JavaScript localization library and internationalization framework used to translate application text… kashav/fsql — fsql is a command line interface tool that provides a SQL-like query language for finding files and directories on a… rauchg/ms.js — ms.js is a millisecond conversion library providing tools to format durations into text and parse human-readable time…

Projects sharing features with Go Humanize

These projects share indexed features with Go Humanize. Shared tags can include platform or build tooling; verify the primary use case before treating a result as a replacement.
  • adamwdraper/numeral-jsadamwdraper avatar

    adamwdraper/Numeral-js

    9,706View on GitHub↗

    Numeral-js is a JavaScript number formatting library used to convert raw numeric values into human-readable strings for currencies, percentages, and abbreviations. It includes a numeric string parser to extract raw values from formatted strings by removing symbols and delimiters. The library provides locale-aware formatting to adjust decimal separators and currency symbols based on regional language settings. It also features a data size converter that transforms byte values into readable measurements using base-1000 or base-1024 standards. The system supports the registration of custom form

    JavaScript
    View on GitHub↗9,706
  • symfony/translationsymfony avatar

    symfony/translation

    6,607View on GitHub↗

    Symfony Translation is a PHP library and framework component for internationalizing applications. It provides a complete system for managing message catalogs, handling locale-aware string translation, and formatting messages using ICU MessageFormat syntax to support pluralization, gender, and conditional selection. The component organizes translatable strings into named domains, supports key-based lookup that decouples source text from localized versions, and offers deferred rendering through translatable objects that store parameters and render only when output is needed. The library disting

    PHPcomponentphpsymfony
    View on GitHub↗6,607
  • humanizr/humanizerHumanizr avatar

    Humanizr/Humanizer

    9,717View on GitHub↗

    Humanizer is a .NET natural language formatter and string manipulation library designed to convert technical identifiers, numbers, and dates into grammatically correct, human-readable text. It functions as a pluralization engine, localization utility, and case conversion tool for the .NET ecosystem. The library provides specialized capabilities for transforming programming conventions like PascalCase or snake_case into readable sentences and vice versa. It distinguishes itself by handling irregular and uncountable English words during pluralization and singularization, and by applying culture

    C#hacktoberfestlocalization
    View on GitHub↗9,717
  • i18next/i18nexti18next avatar

    i18next/i18next

    8,583View on GitHub↗

    i18next is a JavaScript localization library and internationalization framework used to translate application text into multiple languages. It functions as a dynamic translation manager that handles translation resources, language detection, and the mapping of unique keys to localized strings. The system features a pluralization and interpolation engine that applies language-specific grammatical rules for numeric counts and injects dynamic variables into strings. It utilizes a plugin-based backend architecture to load and cache translation namespaces from various sources, including remote ser

    JavaScript
    View on GitHub↗8,583
  • Compare all 30 related projects→