Skip to content

Commit

Permalink
Merge pull request datafusion-contrib#48 from chmp/feature/arrow-37-s…
Browse files Browse the repository at this point in the history
…upport

Feature/arrow 37 support
  • Loading branch information
chmp authored Apr 11, 2023
2 parents be0d596 + 2410adf commit 913ab4a
Show file tree
Hide file tree
Showing 19 changed files with 584 additions and 274 deletions.
170 changes: 169 additions & 1 deletion Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 4 additions & 0 deletions Changes.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
# Change log

## 0.6.1

- Add support for `arrow=37` with the `arrow-37` feature

## 0.6.0

### Add support for arrow2
Expand Down
14 changes: 14 additions & 0 deletions Readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
| [[API docs]](https://docs.rs/serde_arrow/latest/serde_arrow/)
| [Changes](Changes.md)
| [Example](#example)
| [Related packages](#related-packages)
| [Performance](#performance)
| [How does it work?](serde_arrow/Implementation.md)
| [Status](serde_arrow/Status.md)
Expand Down Expand Up @@ -100,6 +101,19 @@ building the arrays can be expected. More complex types incur a smaller
performance penalty. See the [benches](serde_arrow/benches/arrow2.rs) for
details.

## Related packages

- [`arrow`][arrow]: the JSON component of the official Arrow package supports
serializing objects that support serialize via the [RawDecoder][raw-decoder]
object. It supports primitives types, structs and lists
- [`arrow2-convert`][arrow2-convert]: adds derive macros to convert objects from
and to arrow2 arrays. It supports primitive types, structs, lists, and
chrono's date time types. Enum support is experimental according to the
Readme

[raw-decoder]: https://docs.rs/arrow-json/37.0.0/arrow_json/struct.RawDecoder.html#method.serialize
[arrow2-convert]: https://github.com/DataEngineeringLabs/arrow2-convert

## Development

All common tasks are bundled in the `x.py` script:
Expand Down
22 changes: 15 additions & 7 deletions serde_arrow/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -13,29 +13,35 @@ bench = false

[[bench]]
name = "arrow2"
required-features = ["arrow2-0-17", "arrow-36"]
required-features = ["arrow2-0-17", "arrow-37"]
harness = false

[package.metadata.docs.rs]
features = ["arrow2-0-17", "arrow-36"]
features = ["arrow2-0-17", "arrow-37"]

[features]
default = []

arrow-35 = ["dep:arrow-array-35", "dep:arrow-schema-35", "dep:arrow-data-35", "dep:arrow-buffer-35"]
arrow-37 = ["dep:arrow-array-37", "dep:arrow-schema-37", "dep:arrow-data-37", "dep:arrow-buffer-37"]
arrow-36 = ["dep:arrow-array-36", "dep:arrow-schema-36", "dep:arrow-data-36", "dep:arrow-buffer-36"]
arrow-35 = ["dep:arrow-array-35", "dep:arrow-schema-35", "dep:arrow-data-35", "dep:arrow-buffer-35"]

[dependencies]
arrow-array-35 = { package = "arrow-array", version = "35", optional = true }
arrow-buffer-35 = { package = "arrow-buffer", version = "35", optional = true }
arrow-data-35 = { package = "arrow-data", version="35", optional = true }
arrow-schema-35 = { package = "arrow-schema", version = "35", optional = true }
arrow-array-37 = { package = "arrow-array", version = "37", optional = true }
arrow-buffer-37 = { package = "arrow-buffer", version = "37", optional = true }
arrow-data-37 = { package = "arrow-data", version="37", optional = true }
arrow-schema-37 = { package = "arrow-schema", version = "37", optional = true }

arrow-array-36 = { package = "arrow-array", version = "36", optional = true }
arrow-buffer-36 = { package = "arrow-buffer", version = "36", optional = true }
arrow-data-36 = { package = "arrow-data", version="36", optional = true }
arrow-schema-36 = { package = "arrow-schema", version = "36", optional = true }

arrow-array-35 = { package = "arrow-array", version = "35", optional = true }
arrow-buffer-35 = { package = "arrow-buffer", version = "35", optional = true }
arrow-data-35 = { package = "arrow-data", version="35", optional = true }
arrow-schema-35 = { package = "arrow-schema", version = "35", optional = true }

arrow2-0-16 = { package = "arrow2", version = "0.16", optional = true }
arrow2-0-17 = { package = "arrow2", version = "0.17", optional = true }

Expand All @@ -51,5 +57,7 @@ serde = { version = "1", features = ["derive"] }
serde_json = "1"
rand = "0.8"

arrow-json-37 = { package = "arrow-json", version = "37" }

# for benchmarks
criterion = "0.4"
Loading

0 comments on commit 913ab4a

Please sign in to comment.