napi-rs / napi-rs/node-rs

Feature Request: ICU4C Library

Open
#785 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Rust
Stars
1.5k
Forks
52
Avg merge
13h 37m
Merged PRs (30d)
19

Description

Hello!

I've just found this repo is amazing that we can use the fastest implementations of the popular packages with the almost same API. Thank you for providing your valuable efforts.

I've moved from PHP to node.js recently. There is something missing very important for me in node.js. The ICU4C Library. Node has the Intl library however it doesn't help to implement something customized in node's intl especially on the text based transliterators.

I had been using PHP's intl in the past. Surprisingly there are no any alternatives in node.js ecosystem which is a very big gap that needs to be filled.

E.g. customized requirement which was in PHP:

$string = \Transliterator::createFromRules(
  ':: NFD [^\.\-\'\,\&\+];'
  . ':: NFC;'
  . ':: Latin-ASCII [^\.\-\'\,\&\+];'
  . ':: [\u0080-\u7fff] Remove;'
  . ':: [:Punctuation:] Remove;'
  . '[:Separator:] > '\s'
)->transliterate($string);

I've shared the PHP example because I think it has the easiest API design that I've seen.

I am so poor at the low level things like rust or c/c++. Is it possible to port it from c,c++,rust to node.js? Or it requires too much effort? Or do you accept a new feature request within your roadmap?

There is a rust port(by google) that may help if it's possible to add it to bindings?

Lastly, there are many packages that they try text to slugify that they are not capable enough to work with all the languages. And people are still suffering due to limited support or separated packages.

Is it possible?

Mustafa,
Thanks!

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing the repository's existing Node.js bindings and the linked google/rust_icu project to determine whether ICU4C transliteration can fit the project. Done would require a defined, maintainable API for customized transliteration rules, but this issue does not identify files, tests, or a concrete implementation scope.

Written by the indexing model from the issue text.

Assessment

Tech stack
node.js, rust
Domain
internationalization
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.