Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

ワークスペース構成

wicket は Cargo workspace で2つのクレートと関連ディレクトリを管理しています。

ディレクトリ構成

wicket/
├── Cargo.toml              # Workspace マニフェスト
├── Cargo.lock              # 依存ロックファイル
├── LICENSE                 # MIT OR Apache-2.0
├── README.md               # プロジェクト概要
├── wicket/                # コアライブラリクレート
│   ├── Cargo.toml
│   └── src/
│       ├── lib.rs          # モジュール宣言と再エクスポート
│       ├── dump.rs         # XML ダンプ ストリーミングパーサー
│       ├── cleaner.rs      # Wikitext → プレーンテキスト変換
│       ├── extractor.rs    # 出力フォーマット (doc/JSON)
│       ├── output.rs       # ファイル分割とローテーション
│       └── error.rs        # エラー型
├── wicket-cli/            # CLI バイナリクレート
│   ├── Cargo.toml
│   └── src/
│       └── main.rs         # CLI エントリーポイント
├── docs/                   # mdBook ドキュメント
│   ├── book.toml
│   ├── src/
│   └── ja/                 # 日本語ドキュメント
│       ├── book.toml
│       └── src/
└── .github/
    └── workflows/          # CI/CD パイプライン
        ├── regression.yml  # push/PR 時のテスト
        ├── release.yml     # リリースビルドと公開
        ├── periodic.yml    # 週次安定性テスト
        └── deploy-docs.yml # ドキュメントデプロイ

クレート詳細

wicket (コアライブラリ)

ストリーミング XML パース、Wikitext クリーニング、出力フォーマット、ファイル分割を提供するコアライブラリです。

依存クレートバージョン用途
quick-xml0.39ストリーミング XML パース
parse-wiki-text-20.2Wikitext AST パース
regex1.12フォールバック Wikitext クリーニング
bzip20.6bzip2 圧縮/展開
serde1.0シリアライゼーション
serde_json1.0JSON 出力フォーマット
rayon1.11データ並列処理(CLI で使用)
thiserror2.0エラー型導出
log0.4ログファサード

wicket-cli (CLI バイナリ)

wicket の機能をコマンドラインインターフェースで提供します。

依存クレートバージョン用途
clap4.5コマンドライン引数パース
rayon1.11並列バッチ処理
bzip20.6圧縮出力サポート
env_logger0.11ログ出力
anyhow1.0バイナリのエラーハンドリング
wicket0.1コアライブラリ(workspace メンバー)

ワークスペース設定

Cargo resolver version 3(Rust Edition 2024)を使用:

[workspace]
resolver = "3"
members = ["wicket", "wicket-cli"]

[workspace.package]
version = "0.1.0"
edition = "2024"
license = "MIT OR Apache-2.0"

共有依存はワークスペースレベルの [workspace.dependencies] で定義し、各クレートでは { workspace = true } で参照します。