chislo · числа прописью
Turn any number into correct Russian words — gender, declension, currency, dates and all.
🌐 Live demo & docs · 📖 API reference · 🇷🇺 Русская версия
use ;
money; // одна тысяча двести тридцать четыре рубля пятьдесят шесть копеек
ordinal; // две тысячи двадцать шестой
date_to_words; // десятое апреля две тысячи двадцать шестого года
Russian numerals are hard: numbers change form by gender (один / одна / одно),
nouns decline by the digit (1 рубль, 2 рубля, 5 рублей), and decimals must agree
with an implicit feminine word (одна целая, not один целых). chislo gets all of it
right — so your receipts, invoices, payment orders and voice prompts read like a human wrote them.
Why chislo
- ⚖️ Grammatically correct — three genders, full noun declension, proper decimal agreement.
- 🧾 Built for documents — money, percentages, durations, dates and times, fractions.
- 💱 11 currencies out of the box (RUB, USD, EUR, GBP, CNY, JPY, KZT, BYN, UAH, CHF, AED) + ISO 4217 lookup.
- ⚡ Zero-alloc dictionary — all data is
const;Displaywrappers format with no extraString. - 🪶 Tiny & portable —
no_std(withalloc), optionalrust_decimal, and WASM bindings. - 🦀 i64 range — up to quintillions; scale dictionary reaches 10³⁹.
Install
[]
= "0.3"
| Feature | Default | What it adds |
|---|---|---|
std |
✅ | Standard library integration |
decimal |
✅ | rust_decimal::Decimal support |
wasm |
➖ | wasm-bindgen bindings for the browser |
no_std: chislo = { version = "0.3", default-features = false }
Quick start
use ;
// Integers
int_to_words; // "сорок два"
int_to_words; // "минус один миллион"
// Gender agreement
int_to_words_gender; // "одна"
int_to_words_gender; // "две"
// Noun declension by number
decline; // "рубль"
decline; // "рублей"
decline; // "рубль"
// Ordinals, money, decimals
ordinal; // "сорок вторая"
money; // "сто рублей ноль копеек"
decimal_to_words.unwrap; // "сто двадцать три целых сорок пять сотых"
Fluent Display API — write numbers straight into format!
use ;
format!; // "две тысячи двадцать шестой"
format!; // "…рубля пятьдесят шесть копеек"
What's in the box
| Area | Functions |
|---|---|
| Integers | int_to_words, int_to_words_gender, ordinal |
| Declension | decline(n, one, two, five) |
| Decimals | decimal_to_words, decimal_to_words_precision (1–9 places), decimal_value_to_words |
| Fractions | fraction, mixed_fraction |
| Money | money, money_from_str, money_from_str_rounded, Currency::from_iso |
| Percent | percent, percent_decimal |
| Duration | duration_hms, duration_from_secs |
| Date & time | date_to_words, year_to_words, time_to_words |
Full reference and runnable examples: docs.rs/chislo ·
examples/ (cargo run --example receipt).
Use cases
Fiscal receipts (54-ФЗ) · payment orders & bank statements · invoices, acts, waybills · contracts & powers of attorney · voice assistants / TTS · chatbots that quote amounts.
Links
- 🌐 Landing & live demo: https://rekurt.github.io/chislo/
- 📖 API docs: https://docs.rs/chislo
- 📦 crates.io: https://crates.io/crates/chislo
- 📝 Changelog: CHANGELOG.md · Contributing: CONTRIBUTING.md
- 🇷🇺 Документация на русском: README.ru.md
- 🐹 Go version: go-propisyu
License
MIT © rekurt
Keywords: number to words russian · russian number converter · числа прописью · склонение · грамматический род · currency to words · Rust crate · chislo