rskit-dataset — Streaming Dataset Collection Framework
Streaming dataset collection framework: one generic collection engine drives both DataItem blobs and DatasetRecord rows through streaming sources, transforms, per-item sinks, and schema validation.
Features
- Generic collection engine: one
Collector<T>orchestrates anyDatasetItem— bothDataItemblobs andDatasetRecordrows share the same worker pool, cancellation, and event loop - ETL pipeline: streaming
Source→ fallibleTransform→ per-itemItemSink<T>materialization, with a pluggableValidator<T>policy callers opt into LocalBlobSinkwritesDataItemsamples toreal/andai/;DataItemuses checked in-memory payload construction for small samples and file-backed streaming payloads for large samples- Parallel fetching with configurable concurrency
Manifest— incremental build cache for resumable collectionDatasetLimits— configurable memory threshold and bounded stream buffers- Schema validation delegated to
rskit-schema - Stream adapters for
rskit-stream - Streaming
DatasetRecordreaders/writers with JSON Lines and CSV support plus filter/column-selection operators - Bounded JSON record size, nesting depth, field count, array length, and string length for untrusted records
- Progress callback support via
ProgressCallback
Usage
[]
= "0.2.0-alpha.2"
use ;
use PathBuf;
let config = CollectorConfig ;
let item = new_bytes?
.with_extension;
// Implement Source and Transform, pick an ItemSink (e.g. LocalBlobSink), then construct Collector::new(...)