5 releases (breaking)

0.5.0 Mar 16, 2024
0.4.0 Jan 18, 2023
0.3.0 Jan 13, 2020
0.2.0 Jan 5, 2020
0.1.0 Jul 23, 2017

#425 in Text processing

Download history 4/week @ 2024-02-19 9/week @ 2024-02-26 151/week @ 2024-03-11 25/week @ 2024-03-18

185 downloads per month

Custom license

605KB
704 lines

kelp

CI Crates.io Crates.io license

Convert tool for Japanese.

This is a porting from jaconv(python) written in Rust.

About

  • Convert characters between full-width and half-width
    • From full-width to half-width
    • From half-width to full-width
  • Convert characters between hiragana and katakana
    • From hiragana to katakana
    • From katakana to hiragana

Usage

Add kelp as a dependency in your Cargo.toml

cargo add kelp
[dependencies]
kelp = "0.5"

Quick Example

First, you should build ConvOption.

ConvOption has flags of conversion method.

After building ConvOption, you can convert characters with functions of kelp.

extern crate kelp;

use kelp::*;
use kelp::conv_option::ConvOption;

fn main() {
    // All flags are disabled in default
    let option = ConvOption::build()
        .enable_ascii() // Convert ascii
        .enable_digit() // Convert digit
        .enable_kana()  // Convert kana
        .finalize();    // Returns ConvOption with specified flags

    // From hiragana to katakana(full-width)
    println!("{}", hira2kata("あいうえお", option)); // アイウエオ

    // From hiragana to katakana(half-width)
    println!("{}", hira2hkata("あいうえお", option)); // アイウエオ

    // From katakana(full-width) to hiragana
    println!("{}", kata2hira("アイウエオ", option)); // あいうえお

    // From half-width to full-width
    println!("{}", h2z("abc123アイウ", option)); // ABC123アイウ

    // From full-width to half-width
    println!("{}", z2h("ABC123アイウ", option)); // ABC123アイウ
}

Dependencies

~1.2–1.8MB
~35K SLoC