1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
//! # ptars-core
//!
//! Fast conversion from Protocol Buffers to Apache Arrow and back.
//!
//! This crate provides efficient conversion between Protocol Buffer messages
//! and Apache Arrow record batches, enabling high-performance data processing
//! pipelines that bridge the protobuf and Arrow ecosystems.
//!
//! Its public API exposes arrow-rs and prost-reflect types, which means users
//! must depend on the same major version of arrow and prost-reflect as this
//! crate. If you want to exchange Arrow data without matching those versions,
//! use the `ptars` crate instead: it exposes only the
//! [Arrow C Data Interface](https://arrow.apache.org/docs/format/CDataInterface.html)
//! for zero-copy data exchange.
//!
//! ## Features
//!
//! - Convert protobuf messages to Arrow RecordBatch
//! - Convert Arrow RecordBatch back to protobuf messages
//! - Support for nested messages, repeated fields, and maps
//! - Special handling for well-known types (Timestamp, Date, TimeOfDay, wrapper types)
//!
//! ## Example
//!
//! ```ignore
//! use ptars_core::{binary_array_to_record_batch_direct, PtarsConfig};
//! use arrow_array::BinaryArray;
//! use prost_reflect::DescriptorPool;
//!
//! // Load your protobuf descriptor
//! let pool = DescriptorPool::decode(descriptor_bytes).unwrap();
//! let message_descriptor = pool.get_message_by_name("my.Message").unwrap();
//!
//! // Decode serialized protobuf messages directly to Arrow
//! let binary_array: BinaryArray = /* your serialized messages */;
//! let config = PtarsConfig::default();
//! let record_batch = binary_array_to_record_batch_direct(&binary_array, &message_descriptor, &config).unwrap();
//! ```
// Re-export commonly used items
pub use record_batch_to_array;
pub use ;
pub use ;