Community Over Code Asia 2025、Rustだけのトラックを紹介。中国で着実に拡がるRustエコシステム

Community Over Code Asia 2025での、Rustだけのトラックを紹介。中国でのRustエコシステムの拡がりを実感できた。

松下 康之 - Yasuyuki Matsushita

2025年12月15日 6:01

The Apache Software Foundation(ASF)が北京で開催したCommunity over Code Asia 2025から、メモリーセーフなプログラミング言語Rustにフォーカスしたセッションを紹介する。これは2025年7月25日の午後2時から17時15分に行われた7つのセッションで、全てが中国語で行われた。

Rustは2009年からMozilla Foundationで開発されてきたメモリーセーフなプログラミング言語で、2021年にRust FoundationがAWS、Google、Huawei、Microsoftなどによって創設されて以来、オープンソースコミュニティを中心として開発が進められてきている。Rust FoundationはASFとは異なる非営利団体だが、メモリーセーフであることと高速な実行という特徴がビッグデータ関連のオープンソースコミュニティにアピールしたということだろう。

COC Asiaの公式サイトに掲載されたRustトラックのスケジュール

COC Asiaの公式サイトに掲載されたRustトラックのスケジュール

上記のリストには7つのセッションが記載されているが、どのセッションも約30分の持ち時間を一杯まで使って熱いプレゼンテーションを繰り広げていた。この稿では「Rewrite Bigdata in Rust」というビッグデータ領域におけるRustの実装を解説するセッションを中心に紹介する。セッションを行ったのはDatabend LabsのエンジニアであるHao Ding氏だ。Ding氏はRustのエキスパートとしてさまざまなオープンソースプロジェクトに参加している。特にOpenDAL、iceberg-rust、paimon-rust、arrow-rs、sccacheなどRustを使って開発が行われているプロジェクトに貢献をしているようだ。

ビッグデータ関連のソフトウェアをRustで書き直した経験を語るセッション

ビッグデータ関連のソフトウェアをRustで書き直した経験を語るセッション

まずはすでにRustで書かれ、コミュニティからも評価の高いソフトウェアを紹介。

Rustで実装されたソフトウェアを紹介。ここではRustのビルドツールCargoを紹介した

Rustで実装されたソフトウェアを紹介。ここではRustのビルドツールCargoを紹介した

このセッションに参加している約30名程度の参加者は、すでにRustを使い込んでいるエンジニアが主体であったように思われるため、Rustの公式ビルドツールであるCargoを使っていないエンジニアはいなかっただろう。それでもCargoを紹介したのは、Javaには数多くのビルドツールが乱立していることに比べ、Rustにおける唯一のビルドツールであり、コンパイラーの優秀さも含めて訴求しようと言う意図があったように思える。

すでにRustを使っているユーザーを紹介

すでにRustを使っているユーザーを紹介

このスライドではエンタープライズ企業がどのようにRustを使っているのかを紹介。特にMicrosoft、F5、AWS、Appleが挙げられている。特にMicrosoftとF5は、オブザーバビリティの観点からOpenTelemetryとApache Arrowを組み合わせていることを強調している。

Rustが使われる流れが来ていると説明

Rustが使われる流れが来ていると説明

Rustに関してはツールからプラットフォームに展開が進み、実験の段階から本番環境で使われるレベルの成熟度になっていること、エコシステムも確実に拡大していることなどを説明した。例としてArrow、DataFusion、OpenDALなどを挙げて、ASF関連のビッグデータソフトウェアにもその流れが加速していることを挙げている。この内のArrowは、arrow-rsというRustでArrowを書き換えるプロジェクトが進行していることを指しているのだろう。

ビッグデータ関連のすべてのレイヤーでRustで書かれたソフトウェアが増えている

ビッグデータ関連のすべてのレイヤーでRustで書かれたソフトウェアが増えている

このスライドではビッグデータ関連のソフトウェアのあらゆるレイヤーにおいて、Rustで書かれたソフトウェアが増殖していることを説明している。このうちカラム指向のデータフォーマットであるApache Parquetは、JavaからRustで書き直すプロジェクトが進行中であることからここにリストアップされていると思われるが、ビッグデータを古くから知っているエンジニアが見たら「あれはJavaだったはずでは?」という疑問が沸いたことだろう。前述のArrowも含めて、JavaからRustで書き直すというのがビッグデータ界隈のトレンドのようではある。

その傾向はApache Kafkaで知られる分散メッセージングシステムにおいても同様で、JavaとScalaで書かれているKafkaをRustで書き直して、より高速化とシンプルな運用を目指すプロジェクトRobustMQがこの後のトラックにも登場する。

ここからは他言語からRustで書き直したプロジェクトを3つ紹介してそれぞれの背景を解説した。

AWSのAuroraを紹介。100%Rustで書かれた分散SQLサーバー

AWSのAuroraを紹介。100%Rustで書かれた分散SQLサーバー

Apache Icebergのカタログを担うPolars

Apache Icebergのカタログを担うPolars

OpenDALもRustで書かれている

OpenDALもRustで書かれている

最後のApache OpenDALは、アプリケーションがストレージやHTTPなどのアクセスを抽象化するレイヤーであるという。「個々のSDKを集約するAggregatorではない」と公式ページに書かれているように、Rust-coreが直接S3などのストレージやHTTPなどのプロトコルをサポートしており、各種プログラミング言語のバインディングをサポートしている。

●参考:Apache OpenDAL

ここからはエンジニアがRustを使うためのアプローチについて説明を行った。最初のステップは問題点を明らかにすることだ。

パフォーマンスやコスト、メモリー関連のバグなどに注目すること

パフォーマンスやコスト、メモリー関連のバグなどに注目すること

Rustを自社で採用する理由としては、パフォーマンスの改善が最も大きいと思われるが、その他にもメモリー使用量を減らすことでクラウドのコストを削減するという課題も考慮するべきとスライドには記載されている。

素早くPoCを実施して、段階的にソフトウェアを置き換えるアプローチ

素早くPoCを実施して、段階的にソフトウェアを置き換えるアプローチ

またPoCを実施して本当にRust製のソフトウェアで置き換えられるのかを検証し、モジュール単位で段階的に進めるべきと説明。

最適なツールを選択することが重要

最適なツールを選択することが重要

このスライドではデータ処理、インフラストラクチャーの2つのレベルでビッグデータ関連のソフトウェアにおけるRustによるソフトウェアをリストアップしている。データ処理ではPandas/NumPyをPolarsで代替、SQL AnalyticsはDataFusion、StreamingはRisingWaveという並びだ。またインフラストラクチャーではStorageにはOpenDALを使い、タイムシリーズ(時系列)データベースにはInfluxDBもしくはGreptimeDB、検索にはQuickwit、ベクターデータにはLanceがお勧めということだろう。RisingWaveはストリーミングデータに特化したPostgreSQL互換のデータベースエンジンだ。

Rustに移行するためのヒント、最適化は後回しで良い

Rustに移行するためのヒント、最適化は後回しで良い

このスライドではRustに移行する際に注意すべき点を紹介。「Rustはコンパイラーが優れているのでそれに従え」「メモリーの所有というRust特有のコンセプトに抗うな」「実装した機能が動くことが最優先で最適化は後で良い」などが説明されている。

Java、C++、Pythonのプログラマーが陥りやすい落とし穴を説明

Java、C++、Pythonのプログラマーが陥りやすい落とし穴を説明

ここではJava、C++、PythonのプログラマーがRustを使い始めた時に陥りやすい落とし穴を説明。それぞれ何となくわかるというプログラマーが多かったのか、このスライドを見た参加者からは笑いが起きていた。

この後はツールやAI開発におけるポイントなどを説明し、最後にもう一度、Rustでのビッグデータシステムの代替となるツールを紹介し、徐々にコミュニティに馴染んでいき、最終的にはRustのデベロッパーからプロジェクトにコントリビューションを行えるようになって欲しいと説明してセッションを終えた。

次のステップを紹介。最終的にはRustのエコシステムに貢献して欲しいと説明

次のステップを紹介。最終的にはRustのエコシステムに貢献して欲しいと説明

この他のセッションでは、Polars、Polarsを使ってオンライントレーディングのために作られたRust Trading Language、AndroidスマートフォンのUIツールキットであるAccessKit、AIアプリケーションのためのインタープリター言語AIScript、データアクセスレイヤーであるOpenDAL、分散キャッシュのFoyer、クエリエンジンであるDataFusion、分散メッセージングシステムのRobustMQなどが解説された。ちなみにDataFusionはInfluxDBの中核のソフトウェアであるという。

●参考:7 Projects Building on DataFusion

以下、このセッションで扱われたソフトウェアのGitHubページを追記しておく。

トラック全体を通して真剣に聞き入る参加者、終わらない質疑応答が印象に残ったセッションとなった。他のトラックのもはやレガシーとなったJava製のソフトウェア(Kafka)のアップデートを行うセッションが盛り上がりに欠ける内容だったのに比べて、真剣さと熱意が最終日の最後の時間まで持続していたことは驚きでしかない。欧米のカンファレンスであれば最終日の最後のセッションはまばらな参加者というのが定例なのに、このRustトラックの参加者にはそういう気配は一切なく、真剣に情報交換をしていた姿が記憶に強く残る内容となった。ビッグデータ界隈においてJavaはレガシー、Rustこそが未来であるという中国のエンジニアの思いが形になっていたとも言える。

人気記事トップ10

人気記事ランキングをもっと見る

企画広告も役立つ情報バッチリ! Sponsored

ClickHouse Cloudが実現した広告運用SaaS「ATOM」のデータ基盤革新、パフォーマンスを向上しながら、運用負荷とコストを削減 11月11日 6:20 AIで開発が加速する時代、品質保証はどう変わる? Tricentisが示すAIエージェント活用の実像 11月9日 6:45 悪用までの猶予が「1分」に迫るフロンティアAI時代に開発と本番を貫く脆弱性管理が必要 10月29日 8:30 欧州CRA対応とSBOM運用。AI生成コードのOSS混入問題の対策とは ――スニペット単位で検出する「FossID」「Insignary Clarity」によるSBOM運用 9月16日 6:40 PostgreSQLからTiDBへ、稼働中SaaSで進める段階的DB移行の実践と再設計への展望 9月7日 6:30 機能安全開発におけるGoogleTestの活用を支援!「Parasoft C/C++test CT」で実現する効率化&AI連携 4月14日 6:30 【CNDW2025】Grafanaが明かす「オブザーバビリティの哲学」ー最小限の労力で実用的なインサイトを得るには 1月23日 6:30 【CNDW2025】プロダクト急増に備える基盤刷新 ーウェルスナビがECSからEKSへの移行で得た知見とは 1月15日 6:30 【CNDW2025】250環境を5人で運用、構築時間は30分に ーKINTOテクノロジーズが語るインフラ基盤組織の作り方 2025年12月18日 6:30 新たな自動化で熱視線! AIエージェントの「推論能力」を支える2つのコンポーネントとは? 2025年11月28日 6:30