orc-rust 0.6.0

Implementation of Apache ORC file format using Apache Arrow in-memory format
Documentation
// Licensed to the Apache Software Foundation (ASF) under one
// or more contributor license agreements.  See the NOTICE file
// distributed with this work for additional information
// regarding copyright ownership.  The ASF licenses this file
// to you under the Apache License, Version 2.0 (the
// "License"); you may not use this file except in compliance
// with the License.  You may obtain a copy of the License at
//
//   http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing,
// software distributed under the License is distributed on an
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
// KIND, either express or implied.  See the License for the
// specific language governing permissions and limitations
// under the License.

//! A native Rust implementation of the [Apache ORC](https://orc.apache.org) file format,
//! providing API's to read data into [Apache Arrow](https://arrow.apache.org) in-memory arrays.
//!
//! # Example read usage
//!
//! ```no_run
//! # use std::fs::File;
//! # use orc_rust::arrow_reader::ArrowReaderBuilder;
//! let file = File::open("/path/to/file.orc").unwrap();
//! let reader = ArrowReaderBuilder::try_new(file).unwrap().build();
//! let record_batches = reader.collect::<Result<Vec<_>, _>>().unwrap();
//! ```
//!
//! # Example write usage
//!
//! ```no_run
//! # use std::fs::File;
//! # use arrow::array::RecordBatch;
//! # use orc_rust::arrow_writer::ArrowWriterBuilder;
//! # fn get_record_batch() -> RecordBatch {
//! #     unimplemented!()
//! # }
//! let file = File::create("/path/to/file.orc").unwrap();
//! let batch = get_record_batch();
//! let mut writer = ArrowWriterBuilder::new(file, batch.schema())
//!     .try_build()
//!     .unwrap();
//! writer.write(&batch).unwrap();
//! writer.close().unwrap();
//! ```

pub mod array_decoder;
pub mod arrow_reader;
pub mod arrow_writer;
#[cfg(feature = "async")]
pub mod async_arrow_reader;
mod column;
pub mod compression;
mod encoding;
pub mod error;
mod memory;
pub mod projection;
mod proto;
pub mod reader;
pub mod schema;
pub mod statistics;
pub mod stripe;
mod writer;

pub use arrow_reader::{ArrowReader, ArrowReaderBuilder};
pub use arrow_writer::{ArrowWriter, ArrowWriterBuilder};
#[cfg(feature = "async")]
pub use async_arrow_reader::ArrowStreamReader;