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)