Crate static_lang_word_lists

Crate static_lang_word_lists 

Source
Expand description

§static-lang-word-lists

A collection of word lists for various scripts, compressed at build time with Brotli, baked into your compiled binary, and decompressed lazily at run time.

Word lists are compressed less when building the “debug” profile to speed up build times. Any other profile will use maximum compression.

§Accessing word lists

If there’s a specific word list you’re after, you can refer to its static by name. The crate also provides the static ALL_WORD_LISTS for convenient iteration/filtering.

Word lists are decompressed when you call WordList::iter.

§Feature flags

This crate has a plethora of feature flags to help you reduce build times by only compressing the word lists you plan to use.

There are three categories of feature flag you can use to choose your word list:

  • Source name (e.g. diffenator), enables all the word lists from a particular source
  • Script code (e.g. script-latn), enables all the word lists for the ISO 15924 script (lowercase)
  • Language code (e.g. lang-en), enables all the word lists for the ISO 639-1 language

You can, of course, mix & match at will. Thanks to the magic of Cargo’s feature unification, any word lists needed by other dependencies will still be pulled in & compiled even if you don’t request them in your own crate.

If there are no word lists for a script/language, there won’t be a feature flag.

To enable all word lists, there is the catch-all feature all. (This does not enable functionality-related flags, such as rayon.)

By default, only the diffenator word lists are enabled.

It is not considered a breaking change if more word lists get added to a given feature.

§Creating your own word lists

§How this crate works (⚠️disclaimer⚠️)

A build script for this crate downloads a zipball of the GitHub repo for this project at build time in order to get the word lists. It is not possible for us to include these in the crate hosted on crates.io as the crate would immediately exceed the size limit.

By using a the repository as a path or git dependency you can avoid the download by setting the environment variable STATIC_LANG_WORD_LISTS_LOCAL. Otherwise, you’re welcome to audit the build script.

Structs§

ParWordListIter
A rayon-powered parallel iterator over a WordList.
WordList
A list of words, with optional additional metadata.
WordListIter
An iterator over a WordList.

Enums§

WordListError
An error encountered while loading a WordList and its metadata.

Statics§

ALL_WORD_LISTS
All the available WordLists
AOSP_AFRIKAANS_LATIN
The AOSP_AFRIKAANS_LATIN word list.
AOSP_ALBANIAN_LATIN
The AOSP_ALBANIAN_LATIN word list.
AOSP_AMHARIC_ETHIOPIC
The AOSP_AMHARIC_ETHIOPIC word list.
AOSP_ARABIC
The AOSP_ARABIC word list.
AOSP_ARMENIAN
The AOSP_ARMENIAN word list.
AOSP_ASSAMESE_BENGALI
The AOSP_ASSAMESE_BENGALI word list.
AOSP_AZERBAIJANI_LATIN
The AOSP_AZERBAIJANI_LATIN word list.
AOSP_BASQUE_LATIN
The AOSP_BASQUE_LATIN word list.
AOSP_BELARUSIAN_CYRILLIC
The AOSP_BELARUSIAN_CYRILLIC word list.
AOSP_BELARUSIAN_LATIN
The AOSP_BELARUSIAN_LATIN word list.
AOSP_BENGALI
The AOSP_BENGALI word list.
AOSP_BOSNIAN_LATIN
The AOSP_BOSNIAN_LATIN word list.
AOSP_BULGARIAN_CYRILLIC
The AOSP_BULGARIAN_CYRILLIC word list.
AOSP_BURMESE_MYANMAR
The AOSP_BURMESE_MYANMAR word list.
AOSP_CATALAN_LATIN
The AOSP_CATALAN_LATIN word list.
AOSP_CENTRAL_KHMER
The AOSP_CENTRAL_KHMER word list.
AOSP_CHINESE_HAN
The AOSP_CHINESE_HAN word list.
AOSP_CROATIAN_LATIN
The AOSP_CROATIAN_LATIN word list.
AOSP_CZECH_LATIN
The AOSP_CZECH_LATIN word list.
AOSP_DANISH_LATIN
The AOSP_DANISH_LATIN word list.
AOSP_DUTCH_LATIN
The AOSP_DUTCH_LATIN word list.
AOSP_ENGLISH_LATIN
The AOSP_ENGLISH_LATIN word list.
AOSP_ESTONIAN_LATIN
The AOSP_ESTONIAN_LATIN word list.
AOSP_FINNISH_LATIN
The AOSP_FINNISH_LATIN word list.
AOSP_FRENCH_LATIN
The AOSP_FRENCH_LATIN word list.
AOSP_GALICIAN_LATIN
The AOSP_GALICIAN_LATIN word list.
AOSP_GEORGIAN
The AOSP_GEORGIAN word list.
AOSP_GERMAN_LATIN
The AOSP_GERMAN_LATIN word list.
AOSP_GUJARATI
The AOSP_GUJARATI word list.
AOSP_HINDI_DEVANAGARI
The AOSP_HINDI_DEVANAGARI word list.
AOSP_HINDI_LATIN
The AOSP_HINDI_LATIN word list.
AOSP_HUNGARIAN_LATIN
The AOSP_HUNGARIAN_LATIN word list.
AOSP_ICELANDIC_LATIN
The AOSP_ICELANDIC_LATIN word list.
AOSP_ITALIAN_LATIN
The AOSP_ITALIAN_LATIN word list.
AOSP_JAPANESE_HIRAGANA
The AOSP_JAPANESE_HIRAGANA word list.
AOSP_JAPANESE_KATAKANA
The AOSP_JAPANESE_KATAKANA word list.
AOSP_KANNADA
The AOSP_KANNADA word list.
AOSP_KAZAKH_CYRILLIC
The AOSP_KAZAKH_CYRILLIC word list.
AOSP_KAZAKH_LATIN
The AOSP_KAZAKH_LATIN word list.
AOSP_KIRGHIZ_CYRILLIC
The AOSP_KIRGHIZ_CYRILLIC word list.
AOSP_KIRGHIZ_LATIN
The AOSP_KIRGHIZ_LATIN word list.
AOSP_KOREAN_HANGUL
The AOSP_KOREAN_HANGUL word list.
AOSP_LAO
The AOSP_LAO word list.
AOSP_LATVIAN_LATIN
The AOSP_LATVIAN_LATIN word list.
AOSP_LITHUANIAN_LATIN
The AOSP_LITHUANIAN_LATIN word list.
AOSP_MACEDONIAN_CYRILLIC
The AOSP_MACEDONIAN_CYRILLIC word list.
AOSP_MALAY
The AOSP_MALAY word list.
AOSP_MALAYALAM
The AOSP_MALAYALAM word list.
AOSP_MARATHI_DEVANAGARI
The AOSP_MARATHI_DEVANAGARI word list.
AOSP_MODERN_GREEK
The AOSP_MODERN_GREEK word list.
AOSP_MONGOLIAN_CYRILLIC
The AOSP_MONGOLIAN_CYRILLIC word list.
AOSP_NEPALI_DEVANAGARI
The AOSP_NEPALI_DEVANAGARI word list.
AOSP_NORWEGIAN_BOKMÅL_LATIN
The AOSP_NORWEGIAN_BOKMÅL_LATIN word list.
AOSP_ORIYA
The AOSP_ORIYA word list.
AOSP_PANJABI_GURMUKHI
The AOSP_PANJABI_GURMUKHI word list.
AOSP_PERSIAN_ARABIC
The AOSP_PERSIAN_ARABIC word list.
AOSP_POLISH_LATIN
The AOSP_POLISH_LATIN word list.
AOSP_PORTUGUESE_LATIN
The AOSP_PORTUGUESE_LATIN word list.
AOSP_ROMANIAN_LATIN
The AOSP_ROMANIAN_LATIN word list.
AOSP_ROMANSH_LATIN
The AOSP_ROMANSH_LATIN word list.
AOSP_RUSSIAN_CYRILLIC
The AOSP_RUSSIAN_CYRILLIC word list.
AOSP_SERBIAN_CYRILLIC
The AOSP_SERBIAN_CYRILLIC word list.
AOSP_SERBIAN_LATIN
The AOSP_SERBIAN_LATIN word list.
AOSP_SINHALA
The AOSP_SINHALA word list.
AOSP_SLOVAK_LATIN
The AOSP_SLOVAK_LATIN word list.
AOSP_SLOVENIAN_LATIN
The AOSP_SLOVENIAN_LATIN word list.
AOSP_SPANISH_LATIN
The AOSP_SPANISH_LATIN word list.
AOSP_SWAHILI_LATIN
The AOSP_SWAHILI_LATIN word list.
AOSP_SWEDISH_LATIN
The AOSP_SWEDISH_LATIN word list.
AOSP_TAGALOG
The AOSP_TAGALOG word list.
AOSP_TAMIL
The AOSP_TAMIL word list.
AOSP_TELUGU
The AOSP_TELUGU word list.
AOSP_THAI
The AOSP_THAI word list.
AOSP_TURKISH_LATIN
The AOSP_TURKISH_LATIN word list.
AOSP_UKRAINIAN_CYRILLIC
The AOSP_UKRAINIAN_CYRILLIC word list.
AOSP_URDU_ARABIC
The AOSP_URDU_ARABIC word list.
AOSP_UZBEK_LATIN
The AOSP_UZBEK_LATIN word list.
AOSP_VIETNAMESE_LATIN
The AOSP_VIETNAMESE_LATIN word list.
AOSP_ZULU_LATIN
The AOSP_ZULU_LATIN word list.
DIFFENATOR_ADLAM
The DIFFENATOR_ADLAM word list.
DIFFENATOR_ARABIC
The DIFFENATOR_ARABIC word list.
DIFFENATOR_ARMENIAN
The DIFFENATOR_ARMENIAN word list.
DIFFENATOR_AVESTAN
The DIFFENATOR_AVESTAN word list.
DIFFENATOR_BENGALI
The DIFFENATOR_BENGALI word list.
DIFFENATOR_BOPOMOFO
The DIFFENATOR_BOPOMOFO word list.
DIFFENATOR_CANADIAN_ABORIGINAL
The DIFFENATOR_CANADIAN_ABORIGINAL word list.
DIFFENATOR_CHAKMA
The DIFFENATOR_CHAKMA word list.
DIFFENATOR_CHEROKEE
The DIFFENATOR_CHEROKEE word list.
DIFFENATOR_COMMON
The DIFFENATOR_COMMON word list.
DIFFENATOR_CYRILLIC
The DIFFENATOR_CYRILLIC word list.
DIFFENATOR_DEVANAGARI
The DIFFENATOR_DEVANAGARI word list.
DIFFENATOR_ETHIOPIC
The DIFFENATOR_ETHIOPIC word list.
DIFFENATOR_GEORGIAN
The DIFFENATOR_GEORGIAN word list.
DIFFENATOR_GREEK
The DIFFENATOR_GREEK word list.
DIFFENATOR_GUJARATI
The DIFFENATOR_GUJARATI word list.
DIFFENATOR_GURMUKHI
The DIFFENATOR_GURMUKHI word list.
DIFFENATOR_HEBREW
The DIFFENATOR_HEBREW word list.
DIFFENATOR_HIRAGANA
The DIFFENATOR_HIRAGANA word list.
DIFFENATOR_JAPANESE
The DIFFENATOR_JAPANESE word list.
DIFFENATOR_KATAKANA
The DIFFENATOR_KATAKANA word list.
DIFFENATOR_KHMER
The DIFFENATOR_KHMER word list.
DIFFENATOR_LAO
The DIFFENATOR_LAO word list.
DIFFENATOR_LATIN
The DIFFENATOR_LATIN word list.
DIFFENATOR_LISU
The DIFFENATOR_LISU word list.
DIFFENATOR_MALAYALAM
The DIFFENATOR_MALAYALAM word list.
DIFFENATOR_MONGOLIAN
The DIFFENATOR_MONGOLIAN word list.
DIFFENATOR_MYANMAR
The DIFFENATOR_MYANMAR word list.
DIFFENATOR_OL_CHIKI
The DIFFENATOR_OL_CHIKI word list.
DIFFENATOR_ORIYA
The DIFFENATOR_ORIYA word list.
DIFFENATOR_OSAGE
The DIFFENATOR_OSAGE word list.
DIFFENATOR_SINHALA
The DIFFENATOR_SINHALA word list.
DIFFENATOR_SYRIAC
The DIFFENATOR_SYRIAC word list.
DIFFENATOR_TAMIL
The DIFFENATOR_TAMIL word list.
DIFFENATOR_TELUGU
The DIFFENATOR_TELUGU word list.
DIFFENATOR_THAI
The DIFFENATOR_THAI word list.
DIFFENATOR_THANAA
The DIFFENATOR_THANAA word list.
DIFFENATOR_TIBETAN
The DIFFENATOR_TIBETAN word list.
DIFFENATOR_TIFINAGH
The DIFFENATOR_TIFINAGH word list.
DIFFENATOR_VAI
The DIFFENATOR_VAI word list.
LIBREOFFICE_AF_ZA
The LIBREOFFICE_AF_ZA word list.
LIBREOFFICE_AN_ES
The LIBREOFFICE_AN_ES word list.
LIBREOFFICE_AR
The LIBREOFFICE_AR word list.
LIBREOFFICE_AS_IN
The LIBREOFFICE_AS_IN word list.
LIBREOFFICE_BE_OFFICIAL
The LIBREOFFICE_BE_OFFICIAL word list.
LIBREOFFICE_BG_BG
The LIBREOFFICE_BG_BG word list.
LIBREOFFICE_BN_BD
The LIBREOFFICE_BN_BD word list.
LIBREOFFICE_BO
The LIBREOFFICE_BO word list.
LIBREOFFICE_BR_FR
The LIBREOFFICE_BR_FR word list.
LIBREOFFICE_BS_BA
The LIBREOFFICE_BS_BA word list.
LIBREOFFICE_CA
The LIBREOFFICE_CA word list.
LIBREOFFICE_CA_VALENCIA
The LIBREOFFICE_CA_VALENCIA word list.
LIBREOFFICE_CKB
The LIBREOFFICE_CKB word list.
LIBREOFFICE_CS_CZ
The LIBREOFFICE_CS_CZ word list.
LIBREOFFICE_DA_DK
The LIBREOFFICE_DA_DK word list.
LIBREOFFICE_DE_AT_FRAMI
The LIBREOFFICE_DE_AT_FRAMI word list.
LIBREOFFICE_DE_CH_FRAMI
The LIBREOFFICE_DE_CH_FRAMI word list.
LIBREOFFICE_DE_DE_FRAMI
The LIBREOFFICE_DE_DE_FRAMI word list.
LIBREOFFICE_EL_GR
The LIBREOFFICE_EL_GR word list.
LIBREOFFICE_EN_AU
The LIBREOFFICE_EN_AU word list.
LIBREOFFICE_EN_CA
The LIBREOFFICE_EN_CA word list.
LIBREOFFICE_EN_GB
The LIBREOFFICE_EN_GB word list.
LIBREOFFICE_EN_US
The LIBREOFFICE_EN_US word list.
LIBREOFFICE_EN_ZA
The LIBREOFFICE_EN_ZA word list.
LIBREOFFICE_EO
The LIBREOFFICE_EO word list.
LIBREOFFICE_ES_AR
The LIBREOFFICE_ES_AR word list.
LIBREOFFICE_ES_BO
The LIBREOFFICE_ES_BO word list.
LIBREOFFICE_ES_CL
The LIBREOFFICE_ES_CL word list.
LIBREOFFICE_ES_CO
The LIBREOFFICE_ES_CO word list.
LIBREOFFICE_ES_CR
The LIBREOFFICE_ES_CR word list.
LIBREOFFICE_ES_CU
The LIBREOFFICE_ES_CU word list.
LIBREOFFICE_ES_DO
The LIBREOFFICE_ES_DO word list.
LIBREOFFICE_ES_EC
The LIBREOFFICE_ES_EC word list.
LIBREOFFICE_ES_ES
The LIBREOFFICE_ES_ES word list.
LIBREOFFICE_ES_GQ
The LIBREOFFICE_ES_GQ word list.
LIBREOFFICE_ES_GT
The LIBREOFFICE_ES_GT word list.
LIBREOFFICE_ES_HN
The LIBREOFFICE_ES_HN word list.
LIBREOFFICE_ES_MX
The LIBREOFFICE_ES_MX word list.
LIBREOFFICE_ES_NI
The LIBREOFFICE_ES_NI word list.
LIBREOFFICE_ES_PA
The LIBREOFFICE_ES_PA word list.
LIBREOFFICE_ES_PE
The LIBREOFFICE_ES_PE word list.
LIBREOFFICE_ES_PH
The LIBREOFFICE_ES_PH word list.
LIBREOFFICE_ES_PR
The LIBREOFFICE_ES_PR word list.
LIBREOFFICE_ES_PY
The LIBREOFFICE_ES_PY word list.
LIBREOFFICE_ES_SV
The LIBREOFFICE_ES_SV word list.
LIBREOFFICE_ES_US
The LIBREOFFICE_ES_US word list.
LIBREOFFICE_ES_UY
The LIBREOFFICE_ES_UY word list.
LIBREOFFICE_ES_VE
The LIBREOFFICE_ES_VE word list.
LIBREOFFICE_ET_EE
The LIBREOFFICE_ET_EE word list.
LIBREOFFICE_FA_IR
The LIBREOFFICE_FA_IR word list.
LIBREOFFICE_FR
The LIBREOFFICE_FR word list.
LIBREOFFICE_GD_GB
The LIBREOFFICE_GD_GB word list.
LIBREOFFICE_GL_ES
The LIBREOFFICE_GL_ES word list.
LIBREOFFICE_GUG
The LIBREOFFICE_GUG word list.
LIBREOFFICE_GU_IN
The LIBREOFFICE_GU_IN word list.
LIBREOFFICE_HE_IL
The LIBREOFFICE_HE_IL word list.
LIBREOFFICE_HI_IN
The LIBREOFFICE_HI_IN word list.
LIBREOFFICE_HR_HR
The LIBREOFFICE_HR_HR word list.
LIBREOFFICE_ID_ID
The LIBREOFFICE_ID_ID word list.
LIBREOFFICE_IS
The LIBREOFFICE_IS word list.
LIBREOFFICE_IT_IT
The LIBREOFFICE_IT_IT word list.
LIBREOFFICE_KMR_LATN
The LIBREOFFICE_KMR_LATN word list.
LIBREOFFICE_KN_IN
The LIBREOFFICE_KN_IN word list.
LIBREOFFICE_LO_LA
The LIBREOFFICE_LO_LA word list.
LIBREOFFICE_LT
The LIBREOFFICE_LT word list.
LIBREOFFICE_LV_LV
The LIBREOFFICE_LV_LV word list.
LIBREOFFICE_MR_IN
The LIBREOFFICE_MR_IN word list.
LIBREOFFICE_NB_NO
The LIBREOFFICE_NB_NO word list.
LIBREOFFICE_NE_NP
The LIBREOFFICE_NE_NP word list.
LIBREOFFICE_NL_NL
The LIBREOFFICE_NL_NL word list.
LIBREOFFICE_NN_NO
The LIBREOFFICE_NN_NO word list.
LIBREOFFICE_OC_FR
The LIBREOFFICE_OC_FR word list.
LIBREOFFICE_OR_IN
The LIBREOFFICE_OR_IN word list.
LIBREOFFICE_PA_IN
The LIBREOFFICE_PA_IN word list.
LIBREOFFICE_PL_PL
The LIBREOFFICE_PL_PL word list.
LIBREOFFICE_PT_BR
The LIBREOFFICE_PT_BR word list.
LIBREOFFICE_PT_PT
The LIBREOFFICE_PT_PT word list.
LIBREOFFICE_RO_RO
The LIBREOFFICE_RO_RO word list.
LIBREOFFICE_RU_RU
The LIBREOFFICE_RU_RU word list.
LIBREOFFICE_SA_IN
The LIBREOFFICE_SA_IN word list.
LIBREOFFICE_SI_LK
The LIBREOFFICE_SI_LK word list.
LIBREOFFICE_SK_SK
The LIBREOFFICE_SK_SK word list.
LIBREOFFICE_SL_SI
The LIBREOFFICE_SL_SI word list.
LIBREOFFICE_SQ_AL
The LIBREOFFICE_SQ_AL word list.
LIBREOFFICE_SR
The LIBREOFFICE_SR word list.
LIBREOFFICE_SR_LATN
The LIBREOFFICE_SR_LATN word list.
LIBREOFFICE_SV_FI
The LIBREOFFICE_SV_FI word list.
LIBREOFFICE_SV_SE
The LIBREOFFICE_SV_SE word list.
LIBREOFFICE_SW_TZ
The LIBREOFFICE_SW_TZ word list.
LIBREOFFICE_TA_IN
The LIBREOFFICE_TA_IN word list.
LIBREOFFICE_TE_IN
The LIBREOFFICE_TE_IN word list.
LIBREOFFICE_TH_TH
The LIBREOFFICE_TH_TH word list.
LIBREOFFICE_TR_TR
The LIBREOFFICE_TR_TR word list.
LIBREOFFICE_UK_UA
The LIBREOFFICE_UK_UA word list.
LIBREOFFICE_VI_VN
The LIBREOFFICE_VI_VN word list.
UCD_EMOJI_ALL
The UCD_EMOJI_ALL word list.
UCD_EMOJI_COLOR
The UCD_EMOJI_COLOR word list.
UCD_EMOJI_TEXTUAL
The UCD_EMOJI_TEXTUAL word list.