Releases: rerun-io/quiver
Releases · rerun-io/quiver
0.3.0
A performance-focused release: reading and iterating a validated Column now skips arrow's per-element bounds checks, plus a new record-batch constructor.
⚠️ Breaking changes
- Replace the implicit by-value
IntoIteratorforColumnwith an explicit.into_iter_owned()(#16)
New features
- Add
Column::from_record_batch_and_name(#13)
Performance
- Skip per-element bounds checks when iterating
Column/ListValue(#15) - Unchecked reads for
AnyList, an unchecked null probe forOption, and#[inline]on the per-element accessors (#17)
Other improvements
- Add benchmarks (#14)
Full diff: https://github.com/rerun-io/quiver/compare/0.2.0..0.3.0
0.2.0
Full diff at https://github.com/rerun-io/quiver/compare/0.1.1..0.2.0
This release adds a family of new logical types, "any-encoding" types that abstract over the multiple arrow encodings of the same logical value, and support for arrow 59.
⚠️ Breaking changes
New logical types
- Add four arrow logical types:
BinaryView,LargeList,Map,Run#6 by @emilk - Add
ListViewandLargeListViewlogical types #7 by @emilk - Add
AnyList<L>: one logical type for any list encoding #8 by @emilk - Add
AnyBinary: one logical type for any binary encoding #9 by @emilk - Add
AnyUtf8: one logical type for any UTF-8 encoding #10 by @emilk
Other improvements
0.1.1
0.1.0 - Initial 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,
whereLis a logical type likeString,Option<i64>, orList<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 arrowRecordBatches,
mixing strongly-typedColumn<L>fields with raw arrow arraysCOLUMN_*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 theAsadapter for foreign types
Published crates: quiver, quiver_types, quiver_derive