Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Red Data Tools で切り開く Ruby の未来

Kenta Murata
February 25, 2023

Red Data Tools で切り開く Ruby の未来

Ruby 30周年記念イベント LT

Kenta Murata

February 25, 2023
Tweet

More Decks by Kenta Murata

Other Decks in Technology

Transcript

  1. Red Data Tools の主なプロダクト Red Arrow ファミリー Apache Arrow の

    Ruby バインディング (apache/arrow 内にある) Red Datasets オープンデータにアクセスするための統一インターフェイス Charty 複数のバックエンドをサポートする統計的可視化ライブラリ unicode_plot ターミナルでデータ可視化を行うライブラリ YouPlot ターミナルでデータ可視化を行う CLI ツール (unicode_plot を使用)
  2. Red Amber https://github.com/heronshoes/red_amber Red Arrow をバックエンドとしてデータフレームを実装 メモリ上のデータ構造は Arrow 形式 Apache

    Arrow C++ の機能を利用できる Ruby にとって自然なインターフェイスを目指している heronshoes さんがモリモリと開発している これも Red Data Tools プロダクトのひとつ
  3. Polars Ruby https://github.com/ankane/polars-ruby Polars という Rust 用データフレームライブラリのバインディング Polars は Rust

    版 Apache Arrow 使っててめっちゃ速い (blazingly fast) Red Amber と同様にメモリ上のデータ構造は Arrow 形式 Polars の Python 版 API に従って実装されている ankane さんがモリモリと開発している
  4. pandas https://github.com/mrkn/pandas.rb Python 用データフレームである pandas を Ruby から使える pycall を用いて

    CPython を直接呼び出す形で実装している pycall のおかげで df.applymap(->(x){ x * 5 }) のような事も可能 pandas の全機能について網羅テストをしてないため、未対応の機能があるかも pycall の制限を引き継ぐので、メインスレッド以外では使えないなどの制限がある
  5. 5年で2つも増えた!! Red Amber は Rubyist が使いやすいデータフレームのインターフェイスを目指している Polars Ruby は最速データフレームの Ruby

    バインディング どちらも Apache Arrow という共通基盤の上に乗っている どちらも活発に開発が進んでいる
  6. この波に乗るしかない!! Rubyist にとって使いやすいデータフレームを作れるのは Red Amber の良いところ Red Data Tools に参加して一緒に

    Red Amber を盛り上げませんか? 最速を求めて Polars Ruby を弄るのも良いと思う (Charty 対応とか!) Daru をメンテする人も増えてほしい