Mark Hildreth created ARROW-8637: ------------------------------------ Summary: Resolve Issues with `prettytable-rs` dependency Key: ARROW-8637 URL: https://issues.apache.org/jira/browse/ARROW-8637 Project: Apache Arrow Issue Type: Improvement Components: Rust Reporter: Mark Hildreth
{{prettytable-rs}} is a dependency of Arrow for creating a string for displaying record batches in a tabular form (see [pretty util|https://github.com/apache/arrow/blob/c546eef41e6ab20c4ca29a2d836987959843896f/rust/arrow/src/util/pretty.rs#L24-L25]) The crate, however, has some issues: 1.) {{prettytable-rs}} has a dependency on the {{term}} crate. The {{term}} crate is under minimal maintenance, and it is advised to switch to another crate. This will probably pop up in an [informational security advisory|https://rustsec.org/advisories/RUSTSEC-2018-0015] if it's decided one day to audit the crates. 2.) The crate also has a dependency on {{encode-unicode}}. While not problematic in its own right, this crate implements some traits which can bring about confusing type inference issues. For example, after adding the {{prettytable-rs}} dependency in arrow, the following error occurred what attempting to compile the parquet crate: {{let seed_vec: Vec<u8> =}} {{ Standard.sample_iter(&mut rng).take(seed_len).collect();}} {{error[E0282]: type annotations needed}} {{ --> parquet/src/encodings/rle.rs:833:26}} {{ |}} {{833 | Standard.sample_iter(&mut rng).take(seed_len).collect();}} {{ | ^^^^^^^^^^^ cannot infer type for `T`}} Any user of the arrow crate would see a similar style of error. There are a few possible ways to resolve this: 1.) Hopefully hear from the crate maintainer. There is a [PR open|https://github.com/phsym/prettytable-rs/pull/125] for the encode-unicode issue. 2.) Find a different table-generating crate with less issues. 3.) Fork and fix prettytable-rs. 4.) ??? -- This message was sent by Atlassian Jira (v8.3.4#803005)