$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.7k
Webサーバーサイド言語としてのRustについて
Webサーバーサイド言語としてのRustについて、現状と今後の期待値をまとめています。
kaza
October 21, 2025
Tweet
Share
More Decks by kaza
See All by kaza
認証・認可の基本を学ぼう後編
kouyuume
0
8
認証・認可の基本を学ぼう前編
kouyuume
0
130
Other Decks in Programming
See All in Programming
TypeScriptで設計する 堅牢さとUXを両立した非同期ワークフローの実現
moeka__c
6
2.9k
[堅牢.py #1] テストを書かない研究者に送る、最初にテストを書く実験コード入門 / Let's start your ML project by writing tests
shunk031
11
6.6k
MAP, Jigsaw, Code Golf 振り返り会 by 関東Kaggler会|Jigsaw 15th Solution
hasibirok0
0
200
AIと協働し、イベントソーシングとアクターモデルで作る後悔しないアーキテクチャ Regret-Free Architecture with AI, Event Sourcing, and Actors
tomohisa
5
17k
connect-python: convenient protobuf RPC for Python
anuraaga
0
350
スタートアップを支える技術戦略と組織づくり
pospome
8
14k
TUIライブラリつくってみた / i-just-make-TUI-library
kazto
1
290
Full-Cycle Reactivity in Angular: SignalStore mit Signal Forms und Resources
manfredsteyer
PRO
0
170
All(?) About Point Sets
hole
0
250
無秩序からの脱却 / Emergence from chaos
nrslib
2
11k
WebRTC、 綺麗に見るか滑らかに見るか
sublimer
1
110
複数人でのCLI/Infrastructure as Codeの暮らしを良くする
shmokmt
5
2.1k
Featured
See All Featured
Principles of Awesome APIs and How to Build Them.
keavy
127
17k
Fireside Chat
paigeccino
41
3.7k
It's Worth the Effort
3n
187
29k
Agile that works and the tools we love
rasmusluckow
331
21k
Statistics for Hackers
jakevdp
799
230k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
3.8k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
46
7.8k
Thoughts on Productivity
jonyablonski
73
4.9k
Building Adaptive Systems
keathley
44
2.9k
Into the Great Unknown - MozCon
thekraken
40
2.2k
Visualization
eitanlees
150
16k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
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でフルスタック開発する日も そう遠くないかも……?