Async CSV/COPY: import_csv / export_csv / import_text / export_text on AsyncConnection
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 58/100
Direzione di ricerca
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.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
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.
- Lingua principale
- Rust
- Stelle
- 2
- Fork
- 2
- Merge medio
- 12h 2m
- PR unite (30g)
- 60
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di tableau/hyper-api-rust
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
tableau/hyper-api-rust#294 ·
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
tableau/hyper-api-rust#311 ·
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 45/100
tableau/hyper-api-rust#305 ·
-
Windows Named Pipe: verify DACL denies other users, and measure read-path perf for MCP workloads Aperta
Difficoltà 4/5 3-5 giorni Idoneità per principianti 38/100
tableau/hyper-api-rust#302 ·
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 72/100
tableau/hyper-api-rust#300 ·
Tutte le issue di tableau/hyper-api-rust
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
TheLarkInn/aipm#2413 ·
-
documentation
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 90/100
alexgorbatchev/simple-ptt#15 ·
-
tooling
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
-
todo:ticket
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
taikoxyz/taiko-mono#22168 · 1 commento ·