Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Utility library for checking and converting between Japanese characters - Hiragana, Katakana - and Romaji

License

NotificationsYou must be signed in to change notification settings

PSeitz/wana_kana_rust

Repository files navigation

Crates.ioDocsBuild StatusCoverage Status

WanaKana Rust

ワナカナ <--> WanaKana <--> わなかな

[dependencies]wana_kana ="4.0"

Utility library for checking and converting between Japanese characters - Hiragana, Katakana - and Romaji (Ported fromhttps://github.com/WaniKani/WanaKana V4.0.2)

Examples

use wana_kana::ConvertJapanese;assert_eq!("ワナカナ".to_romaji(),"wanakana");assert_eq!("WanaKana".to_hiragana(),"わなかな");assert_eq!("WANAKANA".to_kana(),"ワナカナ");

Tests

100% coverage

Performance

On Migrating to 2.0 some performance improvements have been implemented by using more efficient lookup structures and avoiding allocations.According to these results around 1000 words can be converted per millisecond on a Core i7-6700.

 bench_hiragana_to_romaji    3,519            1,070              -2,449  -69.59%   x 3.29 bench_kana_1                3,066            567                -2,499  -81.51%   x 5.41 bench_kana_2                8,006            1,831              -6,175  -77.13%   x 4.37 bench_katakana_to_hiragana  2,512            622                -1,890  -75.24%   x 4.04 bench_katakana_to_katakana  1,664            629                -1,035  -62.20%   x 2.65 bench_katakana_to_romaji    6,922            1,067              -5,855  -84.59%   x 6.49 bench_romaji_to_hiragana    3,802            1,300              -2,502  -65.81%   x 2.92 bench_romaji_to_katakana    4,361            1,929              -2,432  -55.77%   x 2.26

Comparison ToWanaKana

A detailed analysis has been done in thebench_compare subfolder, the analysis below may be inaccurate.

A short comparison suggests around 25x performance

importtoKanafrom'./src/toKana';importtoHiraganafrom'./src/toHiragana';importtoKatakanafrom'./src/toKatakana';importtoRomajifrom'./src/toRomaji';console.time("yo")for(vari=0;i<1000;i++){toKana('aiueosashisusesonaninunenokakikukeko')toKana('AIUEOSASHISUSESONANINUNENOKAKIKUKEKO')toHiragana('aiueosashisusesonaninunenokakikukeko')toHiragana('アイウエオサシスセソナニヌネノカキクケコ')toKatakana('aiueosashisusesonaninunenokakikukeko')toKatakana('あいうえおさしすせそなにぬねのかきくけこ')toRomaji('あいうえおさしすせそなにぬねのかきくけこ')toRomaji('アイウエオサシスセソナニヌネノカキクケコ')}console.timeEnd("yo")

node -r esm run.js

externcrate wana_kana;use wana_kana::to_hiragana::to_hiragana;use wana_kana::to_katakana::to_katakana;use wana_kana::to_romaji::to_romaji;use wana_kana::to_kana::*;fnmain(){let start = std::time::Instant::now();for _in0..1000{to_kana("aiueosashisusesonaninunenokakikukeko");to_kana("AIUEOSASHISUSESONANINUNENOKAKIKUKEKO");to_hiragana("aiueosashisusesonaninunenokakikukeko");to_hiragana("アイウエオサシスセソナニヌネノカキクケコ");to_katakana("aiueosashisusesonaninunenokakikukeko");to_katakana("あいうえおさしすせそなにぬねのかきくけこ");to_romaji("あいうえおさしすせそなにぬねのかきくけこ");to_romaji("アイウエオサシスセソナニヌネノカキクケコ");}println!("{:?}", start.elapsed().as_millis());}

node -r esm run.js253.231ms

cargo run --release --bin bench9ms

CLI

Convert to kana and back for fun and profit

cargo install wana_kana will install 2 CLI tools:to_kana andto_romaji.

Both commands support pipingls | to_kana and parametersto_romaji へろ をるど.

About

Utility library for checking and converting between Japanese characters - Hiragana, Katakana - and Romaji

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors6

Languages


[8]ページ先頭

©2009-2025 Movatter.jp