Skip to content

0.1.0 - Initial release

Choose a tag to compare

@emilk emilk released this 05 Jun 12:45
· 20 commits to main since this release

A zero-copy, strongly typed interface for Apache Arrow columns and record batches, for Rust's arrow-rs.

Highlights:

  • Column<L>: a strongly-typed, validated, zero-copy view of one record batch column,
    where L is a logical type like String, Option<i64>, or List<Option<String>>
  • One eager, cheap validation at the parse boundary; after that,
    element access is infallible, fully typed, and zero-copy
  • Logical types for primitives, f16, strings, binaries, timestamps, durations,
    dates, times, lists, fixed-size lists, fixed-size binaries, and dictionaries
  • #[derive(Quiver)]: convert a struct of columns to and from arrow RecordBatches,
    mixing strongly-typed Column<L> fields with raw arrow arrays
  • COLUMN_* descriptor constants for single-column extraction without hard-coding names
  • Per-column metadata, declared (#[quiver(metadata("key" = "value"))]) or per-instance
  • newtype_datatype! for domain newtypes, and the As adapter for foreign types

Published crates: quiver, quiver_types, quiver_derive