$30 off During Our Annual Pro Sale. View Details »
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Webサーバーサイド言語としてのRustについて
Search
kaza
October 21, 2025
Programming
1
5.8k
Webサーバーサイド言語としてのRustについて
Webサーバーサイド言語としてのRustについて、現状と今後の期待値をまとめています。
kaza
October 21, 2025
Tweet
Share
More Decks by kaza
See All by kaza
褒め方の技術の誤解と本質
kouyuume
0
67
認証・認可の基本を学ぼう後編
kouyuume
0
180
認証・認可の基本を学ぼう前編
kouyuume
0
190
Other Decks in Programming
See All in Programming
ソフトウェア設計の課題・原則・実践技法
masuda220
PRO
26
22k
C-Shared Buildで突破するAI Agent バックテストの壁
po3rin
0
380
從冷知識到漏洞,你不懂的 Web,駭客懂 - Huli @ WebConf Taiwan 2025
aszx87410
1
930
大体よく分かるscala.collection.immutable.HashMap ~ Compressed Hash-Array Mapped Prefix-tree (CHAMP) ~
matsu_chara
1
210
AIコーディングエージェント(Gemini)
kondai24
0
200
複数人でのCLI/Infrastructure as Codeの暮らしを良くする
shmokmt
5
2.2k
令和最新版Android Studioで化石デバイス向けアプリを作る
arkw
0
380
ZOZOにおけるAI活用の現在 ~モバイルアプリ開発でのAI活用状況と事例~
zozotech
PRO
8
5.4k
CSC509 Lecture 14
javiergs
PRO
0
220
Developing static sites with Ruby
okuramasafumi
0
250
STYLE
koic
0
150
안드로이드 9년차 개발자, 프론트엔드 주니어로 커리어 리셋하기
maryang
1
110
Featured
See All Featured
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.1k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
132
19k
Done Done
chrislema
186
16k
How GitHub (no longer) Works
holman
316
140k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
61k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.1k
How to Think Like a Performance Engineer
csswizardry
28
2.4k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
48
9.8k
How to Ace a Technical Interview
jacobian
280
24k
The Pragmatic Product Professional
lauravandoore
37
7.1k
[RailsConf 2023] Rails as a piece of cake
palkan
58
6.1k
Scaling GitHub
holman
464
140k
Transcript
Webサーバーサイド言語 としてのRustについて kaza
Rustの特徴 C/C++レベルのスループットと低レイテンシ メモリリーク・データ競合をコンパイル時に排除 Tokio(非同期ランタイム)による安全な並列処理 Rustの特徴 高パフォーマンス・堅牢なサービス提供が可能 静的型付け言語で型安全なので長期保守運用に強い コンテナイメージが軽量(数MB)で サーバーレスと相性が良い
Rustの処理速度(Pythonとの比較) Python3.14のベンチマーク結果ですが、比較対象でRustが挙がっており、 とてもわかりやすかったので掲載。 https://techfeed.io/entries/68e82cdcb335ef5804974e8c
RustのWebサーバーサイド利用の近年実績 Discord DropBox Cloudflare 一休.com クックパッド Deno Deploy GoからRustに移行で大幅なパフォーマンス向上を報告 コア処理(ファイル同期)をPythonからRustに移行、
大規模な同期処理の安定化を報告 Rustで独自のフレームワークを開発・サービス提供 Python・C#からRustに移行したことで省リソース化、 動作の堅牢化を報告 Push通知配信基盤をRubyからRustに移行、 マルチスレッドの安全な実装・高速化を報告 Rustでサーバーサイド実装、Deno自体もRust実装
Rocket Actix Web axum 開発開始年月 2016/12 2017/10 2021/12 現在バージョン v0.5.1
(2024/03) v3.8.1 (2025/10) v0.8.5 (2025/10) GitHubスター数 25.4k 23.7k 23.3k 開発者/組織 Sergio Benitez他 Actixプロジェクト Tokioチーム 非同期ランタイム Tokio Tokio Tokio マクロ依存度 高 中 低 Rust言語によるWebアプリケーションフレームワーク
Rocket Actix Web axum 開発開始年月 2016/12 2017/10 2021/12 現在バージョン v0.5.1
(2024/03) v3.8.1 (2025/10) v0.8.5 (2025/10) GitHubスター数 25.4k 23.7k 23.3k 開発者/組織 Sergio Benitez他 Actixプロジェクト Tokioチーム 非同期ランタイム Tokio Tokio Tokio マクロ依存度 高 中 低 Rust言語によるWebアプリケーションフレームワーク Actix Webより後発に も関わらずほぼ同数。 近年のRust Webフレ ームワークで最も注目 されている
ルーティング、リクエスト、JSONボディなどを型で表 現でき、コンパイル時に多くのエラーを検出可能 認証・認可、ロギング、レート制限などを 再利用可能な形で実装可能 Rustにおける非同期処理のデファクト・スタンダード となっているTokio開発元がTokioベースで実装 特徴 FastAPI に近い直感的な記述が可能。 他フレームワークより学習コスト低
ベンチマーク結果 axumの特徴 Tokio(非同期ランタイム)と Tower(ミドルウェア抽象化レイヤ)を 基盤とする高性能・型安全なWebフレームワーク
非同期処理の書き方(基本) async・awaitで記述可能。 関数(fn)定義の前にasyncを記述し、 非同期処理に対して.awaitを記述することで実現可能。
非同期処理の書き方(複数並列) join!マクロを使うことで並列処理が可能。
非同期処理の書き方(コレクションを並列処理) tokio::spawnでタスク生成してループ処理するか、Futuresクレートを使う。 <tokio::spawnパターン> <Futuresクレートのjoin_allパターン>
認証認可の書き方 選択肢はいくつかある。 axum-auth(シンプルな記述でBasic認証・Bearer認証が可能) axum-login(複雑なクッキー・セッション管理が可能) tower_http(レイヤとしてチェック実装。全体的な制御向き) axum::extract(リクエストのチェック・抽出を実装。ルート単位の制御向き) 一番シンプルに書けるのはaxum-authかtower_httpだが、 複雑な要件を実現する場合はそれ以外の選択肢を目的に合わせて利用する。
axum-authによるBasic認証の実装例 stateに保存した情報でAuthBasic(axum-auth機能)をチェックする。
axum-authによるBearer認証の実装例 AuthBearer(axum-auth機能)で取り出したトークンをチェックする。
tower-httpによるBearer認証の実装例 レイヤとして設定できるため、より柔軟な制御が可能。
Rustの問題点(これまで) 学習コストが高い(特に所有権・ライフタイム) メジャー言語に比べると開発者総数が少ないため、 実装事例等が少ない メジャー言語に比べるとエコシステムが少ない Rustの問題点(これまで) 魅力あるけど社内で広めにくいなあ…… 本来はシステムプログラミング言語なので、表現にと っつき辛い部分がある(例:intはi32) コンパイル時に色々検知する分、ビルド時間が長い
AIでRustの学習教材を生成することができるし、 所有権やライフタイムについてエラーが出ても、 エラー理由をAIに調査してもらうことができる。 学習コストが高い → AIで学習しやすくなった エラー原因を教えて Copilot!!
2025年9月3日、Rust支援の独立非営利団体「Rust Foundation」から 「Rust Innovation Lab」というプログラムが発表された。 Rustの重要なオープンソースプロジェクトをサポートするもので、 今後のエコシステム拡大・開発事例増加に期待が持てる。 メジャー言語に比べるとエコシステムが少ない → Rust Innovation Lab発表
ビルドが長いことはとにかく有名で、公式も認識しています。 なので、ビルド時間の高速化に向けて少しずつ動きがあります。 2025/9/19にリリースされた1.90.0でも高速化が盛り込まれていました。 コンパイル時に色々検知する分、ビルド時間が長い → 少しずつ高速化中
Rustの問題点(これから) 学習コストが高い(特に所有権・ライフタイム) メジャー言語に比べると開発者総数が少ないため、 実装事例等が少ない メジャー言語に比べるとエコシステムが少ない Rustの問題点(これから) 問題点が許容できるレベルになりつつある! 本来はシステムプログラミング言語なので、表現にと っつき辛い部分がある(例:intはi32) コンパイル時に色々検知する分、ビルド時間が長い
(願望含む)
サーバーサイドRustへのチャレンジ 現在急速に発展しているサーバーサイドとしてのRust言語。 メリット・デメリットはっきりしているので、これ一択には絶対なりませんが、 高パフォーマンスが求められる場面など、ここぞという時の強い武器として、 少しずつ取り組んでいくのはいかがでしょうか?
おまけ Dioxusでフルスタック開発 Rust製のフレームワークでDioxusというものがあります。 現在v0.6.3なので、安定版リリースまではもう少し時間がかかりそうですが……。 DioxusではフロントエンドもRustで書けます!
おまけ Dioxusでフルスタック開発 クライアントサイドはWASM(WebAssembly)でレンダリングされ、 高いパフォーマンスを出します。 バイナリサイズも小さく、 Hello Worldアプリなら100KB未満にまで 縮小することも可能です。 なお、サーバーサイドはaxumで 実装が進められています。 (将来的には複数選択可能予定)
おまけ Dioxusでフルスタック開発 Webだけでなく、デスクトップ・スマホアプリとしても出力可能です。 また、Dioxusアプリケーションのデプロイサービスも予定されており、 今後のリリースや展開に注目です。 Rustでフルスタック開発する日も そう遠くないかも……?