Skip to content

Commit

Permalink
fix: refactoring (#4)
Browse files Browse the repository at this point in the history
* code refactoring

* update documents
  • Loading branch information
guuzaa authored Sep 14, 2024
1 parent 4e7fb8a commit 1355136
Show file tree
Hide file tree
Showing 12 changed files with 188 additions and 120 deletions.
4 changes: 3 additions & 1 deletion .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ jobs:
components: rustfmt, clippy

- name: Check formatting
if: matrix.os == 'ubuntu-latest'
run: cargo fmt -- --check

- name: Build on ${{ matrix.os }}
Expand All @@ -33,6 +34,7 @@ jobs:
- name: Run tests on ${{ matrix.os }}
run: cargo test --verbose

- name: Run clippy on ${{ matrix.os }}
- name: Run clippy
if: matrix.os == 'ubuntu-latest'
run: cargo clippy -- -D warnings

33 changes: 21 additions & 12 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,10 @@ This Rust implementation of the classic `wc` (word count) command-line tool allo

## 🛠️ Installation

There are two ways to install tc:

### Option 1: Install from source

1. Make sure you have Rust installed on your system. If not, get it from [rust-lang.org](https://www.rust-lang.org/tools/install) 🦀

2. Clone this repository:
Expand All @@ -35,6 +39,18 @@ This Rust implementation of the classic `wc` (word count) command-line tool allo

4. The executable will be available at `target/release/tc`

### Option 2: Install pre-built binaries

1. Go to the [Releases page](https://github.com/guuzaa/tc/releases) of the tc repository.

2. Download the latest release for your operating system and architecture.

3. Extract the downloaded archive.

4. Move the `tc` executable to a directory in your system's PATH (e.g., `/usr/local/bin` on Unix-like systems).

5. You can now use tc from anywhere in your terminal!

## 🚀 Usage

### Options:
Expand All @@ -58,36 +74,29 @@ If no options are specified, all counts (lines, words, characters, and tokens) w

1. Count lines, words, and characters in a file:
```
./tc example.txt
tc example.txt
```

2. Count only words in multiple files:
```
./tc -w file1.txt file2.txt file3.txt
tc -w file1.txt file2.txt file3.txt
```

3. Count lines and characters from standard input:
```
echo "Hello, World!" | ./tc -lc
echo "Hello, World!" | tc -lc
```

4. Count tokens using the ChatGPT tokenizer:
```
./tc -t --model chatgpt example.txt
tc -t --model chatgpt example.txt
```

5. Count everything in files with different languages:
```
./tc english.txt korean.txt japanese.txt
tc english.txt korean.txt japanese.txt
```

## 🧪 Running Tests

To run the test suite, use the following command:
```
cargo test
```

## 🤝 Contributing

Contributions are welcome! Feel free to submit issues or pull requests. 🎉
Expand Down
54 changes: 39 additions & 15 deletions docs/README-de-DE.md
Original file line number Diff line number Diff line change
@@ -1,24 +1,29 @@
# 📊 Rust Wortzählprogramm (tc) 🦀
# 📊 Rust Token-Zählprogramm (tc) 🦀

Ein einfaches und effizientes Wortzählprogramm, geschrieben in Rust! 🚀
Ein einfaches und effizientes Token-Zählprogramm, geschrieben in Rust! 🚀

[English](../README.md) | [简体中文](README-zh-CN.md) | [繁體中文](README-zh-TW.md) | [日本語](README-ja-JP.md) | [한국어](README-ko-KR.md) | Deutsch

## 📝 Beschreibung

Diese Rust-Implementierung des klassischen `tc` (Wortzählung) Kommandozeilenwerkzeugs ermöglicht es Ihnen, Zeilen, Wörter und Zeichen in Textdateien oder aus der Standardeingabe zu zählen. Es ist schnell, zuverlässig und unterstützt Unicode! 🌍✨
Diese Rust-Implementierung des klassischen `wc` (Wortzählung) Kommandozeilenwerkzeugs ermöglicht es Ihnen, Zeilen, Wörter, Zeichen und sogar Tokens in Textdateien oder aus der Standardeingabe zu zählen. Es ist schnell, zuverlässig und unterstützt Unicode! 🌍✨

## 🎯 Funktionen

- Zählt Zeilen 📏
- Zählt Wörter 🔤
- Zählt Zeichen (einschließlich mehrbytiger Unicode-Zeichen) 🔡
- Zählt Tokens mit verschiedenen Tokenizer-Modellen 🔢
- Verarbeitet mehrere Dateien 📚
- Liest aus der Standardeingabe 🖥️
- Unterstützt verschiedene Sprachen (Englisch, Koreanisch, Japanisch und mehr!) 🌐

## 🛠️ Installation

Es gibt zwei Möglichkeiten, tc zu installieren:

### Option 1: Installation aus dem Quellcode

1. Stellen Sie sicher, dass Rust auf Ihrem System installiert ist. Falls nicht, laden Sie es von [rust-lang.org](https://www.rust-lang.org/tools/install) herunter 🦀

2. Klonen Sie dieses Repository:
Expand All @@ -34,44 +39,63 @@ Diese Rust-Implementierung des klassischen `tc` (Wortzählung) Kommandozeilenwer

4. Die ausführbare Datei finden Sie unter `target/release/tc`

### Option 2: Installation vorkompilierter Binärdateien

1. Gehen Sie zur [Releases-Seite](https://github.com/guuzaa/tc/releases) des tc-Repositories.

2. Laden Sie die neueste Version für Ihr Betriebssystem und Ihre Architektur herunter.

3. Entpacken Sie das heruntergeladene Archiv.

4. Verschieben Sie die `tc`-Ausführungsdatei in ein Verzeichnis in Ihrem System-PATH (z.B. `/usr/local/bin` auf Unix-ähnlichen Systemen).

5. Sie können tc jetzt von überall in Ihrem Terminal verwenden!

## 🚀 Verwendung

### Optionen:

- `-l, --lines`: Zeigt die Zeilenanzahl 📏
- `-w, --words`: Zeigt die Wortanzahl 🔤
- `-c, --chars`: Zeigt die Zeichenanzahl 🔡
- `-t, --tokens`: Zeigt die Token-Anzahl 🔢
- `--model <MODEL>`: Wählt das Tokenizer-Modell (Standard: gpt3)

Verfügbare Modelle:
- `gpt3`: r50k_base
- `edit`: p50k_edit
- `code`: p50k_base
- `chatgpt`: cl100k_base
- `gpt4o`: o200k_base

Wenn keine Optionen angegeben werden, werden alle Zählungen (Zeilen, Wörter und Zeichen) angezeigt.
Wenn keine Optionen angegeben werden, werden alle Zählungen (Zeilen, Wörter, Zeichen und Tokens) angezeigt.

### Beispiele:

1. Zähle Zeilen, Wörter und Zeichen in einer Datei:
```
./tc beispiel.txt
tc beispiel.txt
```

2. Zähle nur Wörter in mehreren Dateien:
```
./tc -w datei1.txt datei2.txt datei3.txt
tc -w datei1.txt datei2.txt datei3.txt
```

3. Zähle Zeilen und Zeichen aus der Standardeingabe:
```
echo "Hallo, Welt!" | ./tc -l -c
echo "Hallo, Welt!" | tc -lc
```

4. Zähle alles in Dateien mit verschiedenen Sprachen:
4. Zähle Tokens mit dem ChatGPT-Tokenizer:
```
./tc englisch.txt koreanisch.txt japanisch.txt
tc -t --model chatgpt beispiel.txt
```

## 🧪 Tests ausführen

Um die Testsuite auszuführen, verwenden Sie den folgenden Befehl:
```
cargo test
```
5. Zähle alles in Dateien mit verschiedenen Sprachen:
```
tc englisch.txt koreanisch.txt japanisch.txt
```

## 🤝 Beitragen

Expand Down
39 changes: 24 additions & 15 deletions docs/README-ja-JP.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,24 +2,28 @@

Rustで書かれたシンプルで効率的なトークンカウントプログラム!🚀

[English](../README.md) | [简体中文](README-zh-CN.md) | [繁體中文](README-zh-TW.md) | 日本語 | [한국어](README-ko-KR.md) | [Deutsch](README-de-DE.md)
[English](../README.md) | [简体中文](README-zh-CN.md) | [繁體中文](README-zh-TW.md) | [日本語](README-ja-JP.md) | 한국어 | [Deutsch](README-de-DE.md)

## 📝 説明

この Rust 実装の古典的な `tc`(トークンカウント)コマンドラインツールは、テキストファイルや標準入力の行数、単語数、文字数をカウントできます。高速で信頼性が高く、Unicodeをサポートしています!🌍✨
この Rust 実装の古典的な `wc`(ワードカウント)コマンドラインツールは、テキストファイルや標準入力の行数、単語数、文字数、さらにはトークン数をカウントできます。高速で信頼性が高く、Unicodeをサポートしています!🌍✨

## 🎯 特徴

- 行数のカウント 📏
- 単語数のカウント 🔤
- 文字数のカウント(マルチバイトUnicode文字を含む)🔡
- トークン数のカウント(まだ準備中)🔤
- 様々なトークナイザーモデルを使用したトークン数のカウント 🔢
- 複数のファイルを処理 📚
- 標準入力からの読み取り 🖥️
- 様々な言語をサポート(英語、韓国語、日本語など)🌐

## 🛠️ インストール

tcをインストールする方法は2つあります:

### オプション1:ソースからのインストール

1. システムに Rust がインストールされていることを確認してください。インストールされていない場合は、[rust-lang.org](https://www.rust-lang.org/tools/install) から入手してください 🦀

2. このリポジトリをクローンします:
Expand All @@ -35,6 +39,18 @@ Rustで書かれたシンプルで効率的なトークンカウントプログ

4. 実行可能ファイルは `target/release/tc` にあります

### オプション2:ビルド済みバイナリのインストール

1. tcリポジトリの[リリースページ](https://github.com/guuzaa/tc/releases)に移動します。

2. お使いのオペレーティングシステムとアーキテクチャに適した最新リリースをダウンロードします。

3. ダウンロードしたアーカイブを解凍します。

4. `tc` 実行ファイルをシステムのPATHにあるディレクトリに移動します(例:Unix系システムの場合は `/usr/local/bin`)。

5. これで、ターミナルのどこからでも tc を使用できるようになりました!

## 🚀 使用方法

### オプション:
Expand All @@ -58,36 +74,29 @@ Rustで書かれたシンプルで効率的なトークンカウントプログ

1. ファイル内の行数、単語数、文字数をカウント:
```
./tc example.txt
tc example.txt
```

2. 複数のファイルの単語数のみをカウント:
```
./tc -w file1.txt file2.txt file3.txt
tc -w file1.txt file2.txt file3.txt
```

3. 標準入力から行数と文字数をカウント:
```
echo "こんにちは、世界!" | ./tc -l -c
echo "こんにちは、世界!" | tc -lc
```

4. ChatGPTトークナイザーを使用してトークン数をカウント:
```
./tc -t --model chatgpt example.txt
tc -t --model chatgpt example.txt
```

5. 異なる言語のファイルですべてをカウント:
```
./tc english.txt korean.txt japanese.txt
tc english.txt korean.txt japanese.txt
```

## 🧪 テストの実行

テストスイートを実行するには、次のコマンドを使用します:
```
cargo test
```

## 🤝 貢献

貢献を歓迎します!気軽に問題を報告したり、プルリクエストを送信したりしてください。🎉
Expand Down
37 changes: 23 additions & 14 deletions docs/README-ko-KR.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,11 @@ Rust로 작성된 간단하고 효율적인 토큰 카운트 프로그램입니

## 🛠️ 설치

1. 시스템에 Rust가 설치되어 있는지 확인하세요. 설치되어 있지 않다면 [rust-lang.org](https://www.rust-lang.org/tools/install)에서 다운로드하세요 🦀
tc를 설치하는 두 가지 방법이 있습니다:

### 옵션 1: 소스에서 설치

1. 시스템에 Rust가 설치되어 있는지 확인하세요. 설치되어 있지 ���다면 [rust-lang.org](https://www.rust-lang.org/tools/install)에서 다운로드하세요 🦀

2. 이 저장소를 클론하세요:
```
Expand All @@ -35,6 +39,18 @@ Rust로 작성된 간단하고 효율적인 토큰 카운트 프로그램입니

4. 실행 파일은 `target/release/tc`에 위치합니다

### 옵션 2: 미리 빌드된 바이너리 설치

1. tc 저장소의 [Releases 페이지](https://github.com/guuzaa/tc/releases)로 이동하세요.

2. 운영 체제와 아키텍처에 맞는 최신 릴리스를 다운로드하세요.

3. 다운로드한 아카이브를 압축 해제하세요.

4. `tc` 실행 파일을 시스템 PATH에 있는 디렉토리로 이동하세요 (예: Unix 계열 시스템의 경우 `/usr/local/bin`).

5. 이제 터미널 어디에서나 tc를 사용할 수 있습니다!

## 🚀 사용법

### 옵션:
Expand All @@ -52,42 +68,35 @@ Rust로 작성된 간단하고 효율적인 토큰 카운트 프로그램입니
- `chatgpt`: cl100k_base
- `gpt4o`: o200k_base

옵션을 지정하지 않으면 모든 수 (줄 수, 단어 수, 문자 수, 토큰 수)가 표시됩니다.
옵션을 지정하지 않으면 모든 수 (줄 수, 단어 수, 문자 수, ���큰 수)가 표시됩니다.

### 예시:

1. 파일의 줄 수, 단어 수, 문자 수 세기:
```
./tc example.txt
tc example.txt
```

2. 여러 파일의 단어 수만 세기:
```
./tc -w file1.txt file2.txt file3.txt
tc -w file1.txt file2.txt file3.txt
```

3. 표준 입력에서 줄 수와 문자 수 세기:
```
echo "안녕하세요, 세상!" | ./tc -l -c
echo "안녕하세요, 세상!" | tc -lc
```

4. ChatGPT 토크나이저를 사용하여 토큰 수 세기:
```
./tc -t --model chatgpt example.txt
tc -t --model chatgpt example.txt
```

5. 다양한 언어로 된 파일의 모든 수 세기:
```
./tc english.txt korean.txt japanese.txt
tc english.txt korean.txt japanese.txt
```

## 🧪 테스트 실행

테스트 스위트를 실행하려면 다음 명령을 사용하세요:
```
cargo test
```

## 🤝 기여

기여는 언제나 환영합니다! 문제를 보고하거나 풀 리퀘스트를 제출해 주세요. 🎉
Expand Down
Loading

0 comments on commit 1355136

Please sign in to comment.