Skip to content

Latest commit

 

History

History
57 lines (50 loc) · 2.14 KB

File metadata and controls

57 lines (50 loc) · 2.14 KB

RDBMS Implementation Project

プロジェクト概要

RustでRDBMSをスクラッチから実装する学習プロジェクト。

Repository Map

  • 概要と現在地: docs/overview.md
  • アーキテクチャ: docs/architecture.md
  • 設計判断: docs/decisions.md
  • コーディングルール: docs/coding-rules.md
  • ハーネス運用: docs/harness-engineering.md
  • 実装計画: docs/plans/

ワークスペース構成

  • crates/storage: ストレージエンジン
  • crates/sql: SQLパーサー
  • crates/query: クエリエンジン
  • crates/catalog: データ辞書
  • crates/types: 共通型
  • crates/rdbms: バイナリ

Setup / Verify

rustup update
cargo build --workspace
cargo test --workspace
cargo test -p storage
cargo fmt
cargo clippy --workspace
cargo run -p rdbms

Working Rules

  • 言語は Rust 2024 edition を前提にする
  • ワークスペースの Rust バージョンは Cargo.tomlrust-version = "1.94"rust-toolchain.tomlchannel = "1.94.0" を基準にする
  • テストファーストで進める
  • 実装後は必ずコードレビューを行う
  • 作業前に必ずプランを提示し、OK を得てから着手する
  • 意図を説明するコメントを必要箇所に残す
  • 動作を分かりやすく解説するコメントをつける
  • 学習のため、一度に全部実装せず、まず具体的な実装順序を書いたTODOコメントを先に書くこと
    • 分かりやすく丁寧で分かりやすいコメントにして
  • 影響範囲の docs/ と既存テストを読んでから編集する
  • 破壊的な git 操作や秘密情報の変更は明示依頼なしで行わない

Definition Of Done

  • 変更内容に応じたテストを実行している
  • 必要なら cargo fmtcargo clippy --workspace を実行している
  • 振る舞い変更があれば関連文書を更新している
  • 残課題や未検証項目があれば明示している

使用ライブラリ

  • tokio: 非同期ランタイム
  • thiserror: エラー型定義
  • anyhow: エラー伝播
  • parking_lot: 高性能ロック
  • crossbeam: 並行処理