Skip to content

Conversation

@evilpie
Copy link
Contributor

@evilpie evilpie commented Oct 18, 2025

This marks these crates as unmaintained as discussed in #2414:

unic
unic-bidi
unic-char
unic-char-basics
unic-char-property
unic-char-range
unic-cli
unic-common
unic-emoji
unic-emoji-char
unic-idna
unic-idna-mapping
unic-idna-punycode
unic-normal
unic-segment
unic-ucd
unic-ucd-age
unic-ucd-bidi
unic-ucd-block
unic-ucd-case
unic-ucd-category
unic-ucd-common
unic-ucd-core
unic-ucd-hangul
unic-ucd-ident
unic-ucd-name
unic-ucd-name_aliases
unic-ucd-normal
unic-ucd-segment
unic-ucd-version
unic-utils

unic-ucd-utils was already yanked so I ignored it.
unic-ucd-core and unic-utils haven't been updated 8 years and weren't even part of the code on GitHub anymore.

I suggested https://crates.io/crates/icu as an alternative, but I am open to suggestions. @hsivonen

@hsivonen
Copy link
Contributor

I suggested https://crates.io/crates/icu as an alternative, but I am open to suggestions.

icu is the closest one-item match for the whole of unic, but 1) idna and bidi functionality is outside ICU4X and 2) there are some unic- crates that don't appear to have a maintained alternative.

If you want a single thing that a script can copy to all advisories, it would probably be helpful to expand on mere "icu" to say that most of the functionality of the unic family of crates is covered by the combination of icu, idna, and unicode-bidi.

If you are OK with per-crate suggestions, here's a quick attempt:

unic

icu + idna + unicode-bidi

unic-bidi

unicode-bidi

unic-char

icu_properties

unic-char-basics

(I'm not aware of a replacement.)

unic-char-property

icu_properties

unic-char-range

The functionality is in the core Rust language.

unic-cli

(I'm not aware of a replacement.)

unic-common

(Looks like a unic-specific code organization thing; not relevant to have a replacement.)

unic-emoji

icu_properties

unic-emoji-char

icu_properties

unic-idna

idna

unic-idna-mapping

Technically, icu_normalizer::uts46 / idna_mapping, but apps should use idna.

unic-idna-punycode

idna::punycode

unic-normal

icu_normalizer / unicode-normalization

unic-segment

icu_segmenter / unicode-segmentation

unic-ucd

icu_properties

unic-ucd-age

(I'm not aware of a replacement.)

unic-ucd-bidi

icu_properties

unic-ucd-block

(I'm not aware of a replacement.)

unic-ucd-case

icu_properties

unic-ucd-category

icu_properties

unic-ucd-common

icu_properties

unic-ucd-core

(Looks like a unic-specific code organization thing; not relevant to have a replacement.)

unic-ucd-hangul

icu_normalizer / unicode-normalization

unic-ucd-ident

icu_properties / unicode-ident

unic-ucd-name

(I'm not aware of a replacement.)

unic-ucd-name_aliases

(I'm not aware of a replacement.)

unic-ucd-normal

icu_normalizer

unic-ucd-segment

icu_properties

unic-ucd-version

(Looks like a unic-specific code organization thing; not relevant to have a replacement.)

unic-utils

(Looks like a unic-specific code organization thing; not relevant to have a replacement.)

@djc
Copy link
Contributor

djc commented Oct 20, 2025

I think the work of doing per-crate recommendations should be worth it.

@hsivonen thanks for the suggestions!

@evilpie
Copy link
Contributor Author

evilpie commented Oct 20, 2025

Wow. Thank you for putting this together. I will update the PR soon to include your suggestions.

Copy link
Contributor

@djc djc left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for all the effort! Going to merge this now, can always tweak things in response to feedback.

@djc djc merged commit 2ada485 into rustsec:main Oct 20, 2025
1 check passed
@djc
Copy link
Contributor

djc commented Oct 20, 2025

Oh, fun, this broke the ID assignment workflow because the PR title (which usually includes all the assigned IDs) is too long.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants