Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
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
110
認証・認可の基本を学ぼう後編
kouyuume
0
250
認証・認可の基本を学ぼう前編
kouyuume
0
260
Other Decks in Programming
See All in Programming
Developing static sites with Ruby
okuramasafumi
0
320
LLM Çağında Backend Olmak: 10 Milyon Prompt'u Milisaniyede Sorgulamak
selcukusta
0
130
メルカリのリーダビリティチームが取り組む、AI時代のスケーラブルな品質文化
cloverrose
1
260
Giselleで作るAI QAアシスタント 〜 Pull Requestレビューに継続的QAを
codenote
0
270
これならできる!個人開発のすゝめ
tinykitten
PRO
0
120
バックエンドエンジニアによる Amebaブログ K8s 基盤への CronJobの導入・運用経験
sunabig
0
170
Jetpack XR SDKから紐解くAndroid XR開発と技術選定のヒント / about-androidxr-and-jetpack-xr-sdk
drumath2237
1
180
Kotlin Multiplatform Meetup - Compose Multiplatform 외부 의존성 아키텍처 설계부터 운영까지
wisemuji
0
110
まだ間に合う!Claude Code元年をふりかえる
nogu66
5
870
AI Agent Tool のためのバックエンドアーキテクチャを考える #encraft
izumin5210
0
160
クラウドに依存しないS3を使った開発術
simesaba80
0
130
AI前提で考えるiOSアプリのモダナイズ設計
yuukiw00w
0
160
Featured
See All Featured
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
61
47k
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
160
Leading Effective Engineering Teams in the AI Era
addyosmani
9
1.4k
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
170
HDC tutorial
michielstock
0
260
The Curious Case for Waylosing
cassininazir
0
190
Getting science done with accelerated Python computing platforms
jacobtomlinson
0
75
Agile that works and the tools we love
rasmusluckow
331
21k
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
120
Rebuilding a faster, lazier Slack
samanthasiow
85
9.3k
Faster Mobile Websites
deanohume
310
31k
Thoughts on Productivity
jonyablonski
73
5k
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でフルスタック開発する日も そう遠くないかも……?