# 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.

[package]
name = "arrow"
version = "6.4.0"
description = "Rust implementation of Apache Arrow"
homepage = "https://github.com/apache/arrow-rs"
repository = "https://github.com/apache/arrow-rs"
authors = ["Apache Arrow <dev@arrow.apache.org>"]
license = "Apache-2.0"
keywords = [ "arrow" ]
include = [
    "benches/*.rs",
    "src/**/*.rs",
    "Cargo.toml",
]
edition = "2018"

[lib]
name = "arrow"
path = "src/lib.rs"

[dependencies]
serde = { version = "1.0" }
serde_derive = "1.0"
serde_json = { version = "1.0", features = ["preserve_order"] }
indexmap = "1.6"
rand = { version = "0.8", optional = true }
num = "0.4"
csv_crate = { version = "1.1", optional = true, package="csv" }
regex = "1.3"
lazy_static = "1.4"
packed_simd = { version = "0.3", optional = true, package = "packed_simd_2" }
chrono = "0.4"
chrono-tz = {version = "0.4", optional = true}
flatbuffers = { version = "=2.0.0", optional = true }
hex = "0.4"
comfy-table = { version = "5.0", optional = true, default-features = false }
pyo3 = { version = "0.14", optional = true }
lexical-core = "^0.8"
multiversion = "0.6.1"
bitflags = "1.2.1"

[features]
default = ["csv", "ipc", "test_utils"]
avx512 = []
csv = ["csv_crate"]
ipc = ["flatbuffers"]
simd = ["packed_simd"]
prettyprint = ["comfy-table"]
# The test utils feature enables code used in benchmarks and tests but
# not the core arrow code itself. Be aware that `rand` must be kept as
# an optional dependency for supporting compile to wasm32-unknown-unknown
# target without assuming an environment containing JavaScript.
test_utils = ["rand"]
# this is only intended to be used in single-threaded programs: it verifies that
# all allocated memory is being released (no memory leaks).
# See README for details
memory-check = []
pyarrow = ["pyo3"]

[dev-dependencies]
rand = "0.8"
criterion = "0.3"
flate2 = "1"
tempfile = "3"

[build-dependencies]

[[bench]]
name = "aggregate_kernels"
harness = false

[[bench]]
name = "array_from_vec"
harness = false

[[bench]]
name = "builder"
harness = false

[[bench]]
name = "buffer_bit_ops"
harness = false

[[bench]]
name = "boolean_kernels"
harness = false

[[bench]]
name = "arithmetic_kernels"
harness = false

[[bench]]
name = "cast_kernels"
harness = false

[[bench]]
name = "comparison_kernels"
harness = false

[[bench]]
name = "filter_kernels"
harness = false

[[bench]]
name = "take_kernels"
harness = false

[[bench]]
name = "length_kernel"
harness = false

[[bench]]
name = "bit_length_kernel"
harness = false

[[bench]]
name = "sort_kernel"
harness = false

[[bench]]
name = "partition_kernels"
harness = false

[[bench]]
name = "csv_writer"
harness = false

[[bench]]
name = "json_reader"
harness = false

[[bench]]
name = "equal"
harness = false

[[bench]]
name = "array_slice"
harness = false

[[bench]]
name = "concatenate_kernel"
harness = false

[[bench]]
name = "mutable_array"
harness = false

[[bench]]
name = "buffer_create"
harness = false
