• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..10-Nov-2021-

benchmark/H10-Nov-2021-788714

doc/text/H10-Nov-2021-358

example/H10-Nov-2021-202112

ext/arrow/H10-Nov-2021-1,7841,345

image/H03-May-2022-

lib/H10-Nov-2021-7,7754,316

test/H10-Nov-2021-13,32010,748

.gitignoreH A D10-Nov-2021872 2422

.yardoptsH A D10-Nov-202183 76

GemfileH A D10-Nov-2021843 2320

README.mdH A D10-Nov-20212.8 KiB7537

RakefileH A D10-Nov-20212.5 KiB10186

red-arrow.gemspecH A D10-Nov-20212.6 KiB6861

README.md

1<!---
2  Licensed to the Apache Software Foundation (ASF) under one
3  or more contributor license agreements.  See the NOTICE file
4  distributed with this work for additional information
5  regarding copyright ownership.  The ASF licenses this file
6  to you under the Apache License, Version 2.0 (the
7  "License"); you may not use this file except in compliance
8  with the License.  You may obtain a copy of the License at
9
10    http://www.apache.org/licenses/LICENSE-2.0
11
12  Unless required by applicable law or agreed to in writing,
13  software distributed under the License is distributed on an
14  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15  KIND, either express or implied.  See the License for the
16  specific language governing permissions and limitations
17  under the License.
18-->
19
20# Red Arrow - Apache Arrow Ruby
21
22Red Arrow is the Ruby bindings of Apache Arrow. Red Arrow is based on GObject Introspection.
23
24[Apache Arrow](https://arrow.apache.org/) is an in-memory columnar data store. It's used by many products for data analytics.
25
26[GObject Introspection](https://wiki.gnome.org/action/show/Projects/GObjectIntrospection) is a middleware for language bindings of C library. GObject Introspection can generate language bindings automatically at runtime.
27
28Red Arrow uses [Apache Arrow GLib](https://github.com/apache/arrow/tree/master/c_glib) and [gobject-introspection gem](https://rubygems.org/gems/gobject-introspection) to generate Ruby bindings of Apache Arrow.
29
30Apache Arrow GLib is a C wrapper for [Apache Arrow C++](https://github.com/apache/arrow/tree/master/cpp). GObject Introspection can't use Apache Arrow C++ directly. Apache Arrow GLib is a bridge between Apache Arrow C++ and GObject Introspection.
31
32gobject-introspection gem is a Ruby bindings of GObject Introspection. Red Arrow uses GObject Introspection via gobject-introspection gem.
33
34## Install
35
36Install Apache Arrow GLib before install Red Arrow. See [Apache Arrow install document](https://arrow.apache.org/install/) for details.
37
38Install Red Arrow after you install Apache Arrow GLib:
39
40```console
41% gem install red-arrow
42```
43
44## Usage
45
46```ruby
47require "arrow"
48
49table = Arrow::Table.load("/dev/shm/data.arrow")
50# Process data in table
51table.save("/dev/shm/data-processed.arrow")
52```
53
54## Development
55
56Note that you need to install Apache Arrow C++/GLib at master before preparing Red Arrow. See also:
57
58  * For Apache Arrow C++: https://arrow.apache.org/docs/developers/cpp/building.html
59  * For Apache Arrow GLib: https://github.com/apache/arrow/blob/master/c_glib/README.md
60
61```console
62$ cd ruby/red-arrow
63$ bundle install
64$ bundle exec rake test
65```
66
67### For macOS with Homebrew
68
69```console
70$ cd ruby/red-arrow
71$ bundle install
72$ brew install apache-arrow --head
73$ brew install apache-arrow-glib --head
74$ bundle exec rake test
75```