Arrow2 0.9 has been released
Major changes:
- It is now backed by std's
Vec, thus making it- zero-copy with the rest of Rust's ecosystem
- use less
unsafe - more ergonomics
- faster to compile
- (no difference in performance)
- It now supports reading from, and writing to, Apache Avro, both
syncandasync - flatbuffers dependency was replaced by
planus, a re-implementation of the flatbuffers specification in Rust (you should check out that project, awesome work by @kristoff3r and @TethysSvensson)- lower risks of
unsound - easier-to-maintain code base
- lower risks of
- Improved security and general maintenance:
- Made most of the crate
#[forbid(unsafe)] - significantly reduced the use of
unsafeviabytemuck's dependency - made most of parsing of Arrow IPC
panic-free, to reduce risks of DOS from untrusted data
- Made most of the crate
The complete list of changes available here: https://github.com/jorgecarleitao/arrow2/releases/tag/v0.9.0
Apache Datafusion is considering adopting it as its backend, see https://github.com/apache/arrow-datafusion/issues/1532