https://github.com/byconity/clickhouse-arrow
https://github.com/byconity/clickhouse-arrow
Last synced: about 1 year ago
JSON representation
- Host: GitHub
- URL: https://github.com/byconity/clickhouse-arrow
- Owner: ByConity
- License: apache-2.0
- Created: 2024-07-24T06:30:44.000Z (almost 2 years ago)
- Default Branch: master
- Last Pushed: 2025-01-06T07:55:41.000Z (over 1 year ago)
- Last Synced: 2025-04-09T19:55:14.407Z (about 1 year ago)
- Language: C++
- Size: 114 MB
- Stars: 0
- Watchers: 7
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: .github/CONTRIBUTING.md
- License: LICENSE.txt
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# Apache Arrow
[](https://bugs.chromium.org/p/oss-fuzz/issues/list?sort=-opened&can=1&q=proj:arrow)
[](https://github.com/apache/arrow/blob/master/LICENSE.txt)
[](https://twitter.com/apachearrow)
## Powering In-Memory Analytics
Apache Arrow is a development platform for in-memory analytics. It contains a
set of technologies that enable big data systems to process and move data fast.
Major components of the project include:
- [The Arrow Columnar In-Memory Format](https://github.com/apache/arrow/blob/master/docs/source/format/Columnar.rst):
a standard and efficient in-memory representation of various datatypes, plain or nested
- [The Arrow IPC Format](https://github.com/apache/arrow/blob/master/docs/source/format/Columnar.rst#serialization-and-interprocess-communication-ipc):
an efficient serialization of the Arrow format and associated metadata,
for communication between processes and heterogeneous environments
- [The Arrow Flight RPC protocol](https://github.com/apache/arrow/tree/master/format/Flight.proto):
based on the Arrow IPC format, a building block for remote services exchanging
Arrow data with application-defined semantics (for example a storage server or a database)
- [C++ libraries](https://github.com/apache/arrow/tree/master/cpp)
- [C bindings using GLib](https://github.com/apache/arrow/tree/master/c_glib)
- [C# .NET libraries](https://github.com/apache/arrow/tree/master/csharp)
- [Gandiva](https://github.com/apache/arrow/tree/master/cpp/src/gandiva):
an [LLVM](https://llvm.org)-based Arrow expression compiler, part of the C++ codebase
- [Go libraries](https://github.com/apache/arrow/tree/master/go)
- [Java libraries](https://github.com/apache/arrow/tree/master/java)
- [JavaScript libraries](https://github.com/apache/arrow/tree/master/js)
- [Plasma Object Store](https://github.com/apache/arrow/tree/master/cpp/src/plasma):
a shared-memory blob store, part of the C++ codebase
- [Python libraries](https://github.com/apache/arrow/tree/master/python)
- [R libraries](https://github.com/apache/arrow/tree/master/r)
- [Ruby libraries](https://github.com/apache/arrow/tree/master/ruby)
- [Rust libraries](https://github.com/apache/arrow-rs)
Arrow is an [Apache Software Foundation](https://www.apache.org) project. Learn more at
[arrow.apache.org](https://arrow.apache.org).
## What's in the Arrow libraries?
The reference Arrow libraries contain many distinct software components:
- Columnar vector and table-like containers (similar to data frames) supporting
flat or nested types
- Fast, language agnostic metadata messaging layer (using Google's Flatbuffers
library)
- Reference-counted off-heap buffer memory management, for zero-copy memory
sharing and handling memory-mapped files
- IO interfaces to local and remote filesystems
- Self-describing binary wire formats (streaming and batch/file-like) for
remote procedure calls (RPC) and interprocess communication (IPC)
- Integration tests for verifying binary compatibility between the
implementations (e.g. sending data from Java to C++)
- Conversions to and from other in-memory data structures
- Readers and writers for various widely-used file formats (such as Parquet, CSV)
## Implementation status
The official Arrow libraries in this repository are in different stages of
implementing the Arrow format and related features. See our current
[feature matrix](https://github.com/apache/arrow/blob/master/docs/source/status.rst)
on git master.
## How to Contribute
Please read our latest [project contribution guide][5].
## Getting involved
Even if you do not plan to contribute to Apache Arrow itself or Arrow
integrations in other projects, we'd be happy to have you involved:
- Join the mailing list: send an email to
[dev-subscribe@arrow.apache.org][1]. Share your ideas and use cases for the
project.
- Follow our activity on [GitHub issues][3]
- [Learn the format][2]
- Contribute code to one of the reference implementations
[1]: mailto:dev-subscribe@arrow.apache.org
[2]: https://github.com/apache/arrow/tree/master/format
[3]: https://github.com/apache/arrow/issues
[4]: https://github.com/apache/arrow
[5]: https://github.com/apache/arrow/blob/master/docs/source/developers/contributing.rst