You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jira@arrow.apache.org by "Enrico Ghirardi (Jira)" <ji...@apache.org> on 2020/09/21 09:26:00 UTC
[jira] [Created] (ARROW-10053) [Rust] [datafusion] Allow
integration in non libc environments
Enrico Ghirardi created ARROW-10053:
---------------------------------------
Summary: [Rust] [datafusion] Allow integration in non libc environments
Key: ARROW-10053
URL: https://issues.apache.org/jira/browse/ARROW-10053
Project: Apache Arrow
Issue Type: Improvement
Components: Rust - DataFusion
Affects Versions: 2.0.0
Reporter: Enrico Ghirardi
DataFusion currently cannot be integrated with codebases which are built for platforms that don't provide a libc implementations. This is because some of the dependencies have features flags enabled which pull in libc linked dependencies.
Specifically the datafusion `cargo.toml`:
* doesn't define `clap` as an optional dependency (even if `cli` feature is disable its pulled in)
* the `arrow` crate has the `prettyprint` feature set
* the `parquet` crate doesn't have `default-features` disabled which pull in a libc dependent crate
Ideally it would be possible to make these feature flags configurable or add a nonlibc feature which disables those. Just to five an idea here's the diff that I'm using right now to allow integration.
{code:java}
diff --git a/rust/datafusion/Cargo.toml b/rust/datafusion/Cargo.toml
index 71c16576f..e48bc3216 100644
--- a/rust/datafusion/Cargo.toml
+++ b/rust/datafusion/Cargo.toml
@@ -41,14 +41,14 @@ path = "src/bin/main.rs" [features]
default = ["cli"]
-cli = ["rustyline"]
+cli = ["rustyline", "clap"] [dependencies]
fnv = "1.0"
-arrow = { path = "../arrow", version = "2.0.0-SNAPSHOT", features = ["prettyprint"] }
-parquet = { path = "../parquet", version = "2.0.0-SNAPSHOT", features = ["arrow"] }
+arrow = { path = "../arrow", version = "2.0.0-SNAPSHOT"}
+parquet = { path = "../parquet", version = "2.0.0-SNAPSHOT", default-features = false, features = ["arrow"] }
sqlparser = "0.6.1"
-clap = "2.33"
+clap = { version = "2.33", optional = true }
rustyline = {version = "6.0", optional = true}
crossbeam = "0.7"
paste = "0.1"
{code}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)