Async CSV/COPY: import_csv / export_csv / import_text / export_text on AsyncConnection
まだ誰も着手していません。
評価
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 初心者へのやさしさ
- 58/100
調査の方向性
Start in hyperdb-api/src/copy.rs at the listed Connection methods and compare them with AsyncClient::copy_in and copy_out. Review the existing TestConnection patterns in hyperdb-api/tests/ and examples in hyperdb-api/examples/. Done means all six AsyncConnection methods, real Hyper tests for each async path, and an async CSV import/export example with streaming I/O.
索引モデルが issue の本文から書いたものです。
説明
Summary
The copy module is sync-only — import_csv, export_csv, import_text, export_text are all defined under impl Connection and have no async counterparts on AsyncConnection. Async users either block-on-thread or fall back to the Arrow path. The underlying primitives (AsyncClient::copy_in / copy_out) already exist, so this is plumbing, not new protocol work.
Current state
All four CSV/text COPY methods live in hyperdb-api/src/copy.rs:
Connection::export_csv— copy.rs:276Connection::export_text— copy.rs:320Connection::export_csv_string— copy.rs:365Connection::import_csv— copy.rs:401Connection::import_csv_with_header— copy.rs:415Connection::import_text— copy.rs:460
AsyncConnection exposes none of these. Original gap analysis: §4 of docs/RUST_API_GAP_ANALYSIS.md (predecessor repo).
Proposed work
- Add async equivalents on
AsyncConnection:export_csv,export_text,export_csv_string,import_csv,import_csv_with_header,import_text. Useimpl AsyncRead/AsyncWrite(fromtokio::io) instead ofstd::io::Read/Write. - Mirror the existing sync API surface and behavior exactly — same arguments, same return types, same error semantics.
- Add tests that exercise each async path against a real Hyper instance (use the existing
TestConnectionpatterns inhyperdb-api/tests/). - Add an example under
hyperdb-api/examples/demonstrating async CSV import + export.
Backwards compatibility
Purely additive. New methods on AsyncConnection only.
Performance note
The plumbing path is AsyncClient::copy_in/copy_out (already implemented). The async wrappers should stream through chunked I/O without buffering the full CSV — match the streaming behavior of the sync versions.
- 主要言語
- Rust
- スター
- 2
- フォーク
- 2
- 平均マージ
- 12時間 2分
- マージ済み PR(30日)
- 60
コントリビューションガイド
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
tableau/hyper-api-rust のほかの issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
tableau/hyper-api-rust#294 ·
-
難易度 4/5 3〜5日 初心者へのやさしさ 35/100
tableau/hyper-api-rust#311 ·
-
難易度 4/5 3〜5日 初心者へのやさしさ 45/100
tableau/hyper-api-rust#305 ·
-
Windows Named Pipe: verify DACL denies other users, and measure read-path perf for MCP workloads オープン
難易度 4/5 3〜5日 初心者へのやさしさ 38/100
tableau/hyper-api-rust#302 ·
-
難易度 3/5 1〜2日 初心者へのやさしさ 72/100
tableau/hyper-api-rust#300 ·
tableau/hyper-api-rust の issue をすべて見る
似ている issue
-
bug
難易度 1/5 1時間未満 初心者へのやさしさ 85/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
yantrikos/yantrik-os#255 ·
-
bug CLI custom-model
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
raphamorim/rio#1956 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
rust-bitcoin/rust-bitcoin#6930 · コメント 1 件 ·