Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

Async CSV/COPY: import_csv / export_csv / import_text / export_text on AsyncConnection

オープン
#64 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
4/5
見積もり時間
3〜5日
初心者へのやさしさ
58/100
issue の種類
機能追加
明瞭さ
明確に書かれている
活発さ
静か
技術スタック
rust
領域
api, databases

調査の方向性

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 の本文から書いたものです。

説明

enhancement

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:

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. Use impl AsyncRead/AsyncWrite (from tokio::io) instead of std::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 TestConnection patterns in hyperdb-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

コントリビューションガイド

コントリビューションガイドを開く

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

tableau/hyper-api-rust のほかの issue

tableau/hyper-api-rust の issue をすべて見る

似ている issue

Rust の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。