diff --git a/README.md b/README.md index d8a9728a34bb..54dcbe74ff07 100644 --- a/README.md +++ b/README.md @@ -21,21 +21,22 @@ [![Coverage Status](https://codecov.io/gh/apache/arrow-rs/rust/branch/master/graph/badge.svg)](https://codecov.io/gh/apache/arrow-rs?branch=master) -Welcome to the implementation of Arrow, the popular in-memory columnar format, in [Rust](https://www.rust-lang.org/). +Welcome to the implementation of Arrow, the popular in-memory columnar format, in [Rust][rust]. This repo contains the following main components: -| Crate | Description | Documentation | -| ------------ | ------------------------------------------------------------------ | ---------------------------------- | -| arrow | Core functionality (memory layout, arrays, low level computations) | [(README)](arrow/README.md) | -| parquet | Support for Parquet columnar file format | [(README)](parquet/README.md) | -| arrow-flight | Support for Arrow-Flight IPC protocol | [(README)](arrow-flight/README.md) | +| Crate | Description | Documentation | +| ------------ | ------------------------------------------------------------------ | -------------------------- | +| arrow | Core functionality (memory layout, arrays, low level computations) | [(README)][arrow-readme] | +| parquet | Support for Parquet columnar file format | [(README)][parquet-readme] | +| arrow-flight | Support for Arrow-Flight IPC protocol | [(README)][flight-readme] | There are two related crates in a different repository -| Crate | Description | Documentation | -| ------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------------------------- | -| DataFusion | In-memory query engine with SQL support | [(README)](https://github.com/apache/arrow-datafusion/blob/master/README.md) | -| Ballista | Distributed query execution | [(README)](https://github.com/apache/arrow-datafusion/blob/master/ballista/README.md) | + +| Crate | Description | Documentation | +| ---------- | --------------------------------------- | ----------------------------- | +| DataFusion | In-memory query engine with SQL support | [(README)][datafusion-readme] | +| Ballista | Distributed query execution | [(README)][ballista-readme] | Collectively, these crates support a vast array of functionality for analytic computations in Rust. @@ -52,7 +53,15 @@ The `dev@arrow.apache.org` mailing list serves as the core communication channel The Rust Arrow community also uses the official [ASF Slack](https://s.apache.org/slack-invite) for informal discussions and coordination. This is a great place to meet other contributors and get guidance on where to contribute. Join us in the `#arrow-rust` channel. -Unlike other parts of the Arrow ecosystem, the Rust implementation uses [github issues](https://github.com/apache/arrow-rs/issues) as the system of record for new features +Unlike other parts of the Arrow ecosystem, the Rust implementation uses [GitHub issues][issues] as the system of record for new features and bug fixes and this plays a critical role in the release process. -For design discussions we generally collaborate on Google documents and file a github issue linking to the document. +For design discussions we generally collaborate on Google documents and file a GitHub issue linking to the document. + +[rust]: https://www.rust-lang.org/ +[arrow-readme]: arrow/README.md +[parquet-readme]: parquet/README.md +[flight-readme]: arrow-flight/README.md +[datafusion-readme]: https://github.com/apache/arrow-datafusion/blob/master/README.md +[ballista-readme]: https://github.com/apache/arrow-datafusion/blob/master/ballista/README.md +[issues]: https://github.com/apache/arrow-rs/issues diff --git a/arrow/README.md b/arrow/README.md index ff8e32fd29f0..c20752e4b696 100644 --- a/arrow/README.md +++ b/arrow/README.md @@ -21,15 +21,15 @@ [![Crates.io](https://img.shields.io/crates/v/arrow.svg)](https://crates.io/crates/arrow) -This crate contains the official Native Rust implementation of [Apache Arrow](https://arrow.apache.org/) in memory format. Please see the API documents for additional details. +This crate contains the official Native Rust implementation of [Apache Arrow][arrow] in memory format. Please see the API documents for additional details. -## Rust Version Compatbility +## Rust Version Compatibility -This crate is tested with the latest stable version of Rust. We do not currrently test against other, older versions of the Rust compiler. +This crate is tested with the latest stable version of Rust. We do not currently test against other, older versions of the Rust compiler. ## Versioning / Releases -Unlike many other crates in the Rust ecosystem which spend extended time in "pre 1.0.0" state, releasing versions 0.x, the arrow-rs crate follows the versioning scheme of the overall [Apache Arrow](https://arrow.apache.org/) project in an effort to signal which language implementations have been integration tested with each other. +Unlike many other crates in the Rust ecosystem which spend extended time in "pre 1.0.0" state, releasing versions 0.x, the arrow-rs crate follows the versioning scheme of the overall [Apache Arrow][arrow] project in an effort to signal which language implementations have been integration tested with each other. ## Features @@ -54,7 +54,7 @@ _Background_: There are various parts of the `arrow` crate which use `unsafe` an As `arrow` exists today, it is fairly easy to misuse the APIs, leading to undefined behavior, and it is especially easy to misuse code in modules named above. For an example, as described in [the arrow2 crate](https://github.com/jorgecarleitao/arrow2#why), the following code compiles, does not panic, but results in undefined behavior: ```rust -let buffer = Buffer::from_slic_ref(&[0i32, 2i32]) +let buffer = Buffer::from_slice_ref(&[0i32, 2i32]) let data = ArrayData::new(DataType::Int64, 10, 0, None, 0, vec![buffer], vec![]); let array = Float64Array::from(Arc::new(data)); @@ -84,3 +84,5 @@ cargo run --example builders cargo run --example dynamic_types cargo run --example read_csv ``` + +[arrow]: https://arrow.apache.org/