[Diff since v2.5.2](https://github.com/apache/arrow-julia/compare/v2.5.2...v2.6.0)

**Closed issues:**
- Support Tables.partitions when reading "arrow file" format in addition to "stream" format (#293)
- Make recursive iteration to get dictionaries more defensive for interop (#375)
- Error/Segfault when writing many partitions (#396)
- `Vector{UInt8}` mis-represented when writing to disk (#411)
- CI doesn't test with multiple threads (#426)
- Malformed file by `Arrow.write` on a `IOStream` created with `open(filename, "w")` (#432)
- Unhandled sentinel value for len in compression causes invalid Array dimensions (#435)

**Merged pull requests:**
- Get dictionaries of children only when field.children not nothing  (#382) (@okartal)
- fix Base.eltype methods and functions that take Type parameters (#404) (@baumgold)
- enable incremental reads of arrow-formatted files (#408) (@baumgold)
- Base.isdone for Stream (#428) (@baumgold)
- Run with 1 and 2 threads during tests (#431) (@quinnj)
- Add handling of len = -1 in uncompress (#436) (@DrChainsaw)
- Don't treat Vector{UInt8} as Arrow Binary type (#439) (@quinnj)
- Bump BitIntegers compat (#441) (@quinnj)
- Handle len of -1 in "compressed" buffers from other languages (#442) (@quinnj)
- Add Tables.partitions definition for Arrow.Table (#443) (@quinnj)
- Remove scopedenum for EnumX (#444) (@quinnj)
- Refactor compressors/decompressors for laziness + safety (#445) (@quinnj)
- Return SubArrays when possible for arrow list types (#446) (@quinnj)
- bump version of Arrow and ArrowTypes to prepare for new release (#447) (@baumgold)
bump version of Arrow and ArrowTypes to prepare for new release (#447)

I think we've merged enough PRs that we should probably cut a release.
2 files changed
tree: 340e01a7e117d31c618bcc9465b44255c4e1c5ba
  1. .github/
  2. dev/
  3. docs/
  4. src/
  5. test/
  6. .asf.yaml
  7. .gitignore
  8. codecov.yaml
  9. LICENSE
  10. Project.toml
  11. README.md
README.md

Arrow

docs CI codecov

deps version pkgeval

This is a pure Julia implementation of the Apache Arrow data standard. This package provides Julia AbstractVector objects for referencing data that conforms to the Arrow standard. This allows users to seamlessly interface Arrow formatted data with a great deal of existing Julia code.

Please see this document for a description of the Arrow memory layout.

Installation

The package can be installed by typing in the following in a Julia REPL:

julia> using Pkg; Pkg.add("Arrow")

or to use the official-apache code that follows the official apache release process, you can do:

julia> using Pkg; Pkg.add(url="https://github.com/apache/arrow", subdir="julia/Arrow.jl")

Local Development

When developing on Arrow.jl it is recommended that you run the following to ensure that any changes to ArrowTypes.jl are immediately available to Arrow.jl without requiring a release:

julia --project -e 'using Pkg; Pkg.develop(path="src/ArrowTypes")'

Format Support

This implementation supports the 1.0 version of the specification, including support for:

  • All primitive data types
  • All nested data types
  • Dictionary encodings and messages
  • Extension types
  • Streaming, file, record batch, and replacement and isdelta dictionary messages

It currently doesn't include support for:

  • Tensors or sparse tensors
  • Flight RPC
  • C data interface

Third-party data formats:

See the full documentation for details on reading and writing arrow data.