Arrow2 0.9 has been released

99 points jorgecaleitao

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 sync and async
  • 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
  • Improved security and general maintenance:
    • Made most of the crate #[forbid(unsafe)]
    • significantly reduced the use of unsafe via bytemuck's dependency
    • made most of parsing of Arrow IPC panic-free, to reduce risks of DOS from untrusted data

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