Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Webサーバーサイド言語としてのRustについて
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
kaza
October 21, 2025
Programming
6.3k
1
Share
Webサーバーサイド言語としてのRustについて
Webサーバーサイド言語としてのRustについて、現状と今後の期待値をまとめています。
kaza
October 21, 2025
More Decks by kaza
See All by kaza
褒め方の技術の誤解と本質
kouyuume
0
210
認証・認可の基本を学ぼう後編
kouyuume
0
300
認証・認可の基本を学ぼう前編
kouyuume
0
340
Other Decks in Programming
See All in Programming
How We Benchmarked Quarkus: Patterns and anti-patterns
hollycummins
1
160
Swift Concurrency Type System
inamiy
1
560
〜バイブコーディングを超えて〜 チームで実験し続けたAI駆動開発
tigertora7571
0
170
瑠璃の宝石に学ぶ技術の声の聴き方 / 【劇場版】アニメから得た学びを発表会2026 #エンジニアニメ
mazrean
0
300
ハーネスエンジニアリングとは?
kinopeee
13
6.4k
Spec-driven Development: How AI Changes Everything (And Nothing)
simas
PRO
0
390
[RubyKaigi 2026] Require Hooks
palkan
1
240
ドメインイベントでビジネスロジックを解きほぐす #phpcon_odawara
kajitack
3
820
WebAssembly を読み込むベストプラクティス 2026年春版 / Best Practices for Loading WebAssembly (Spring 2026)
petamoriken
2
500
PHPer、Cloudflare に引っ越す
suguruooki
1
110
Don't Prompt Harder, Structure Better
kitasuke
0
790
PicoRuby for IoT: Connecting to the Cloud with MQTT
yuuu
2
690
Featured
See All Featured
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
350
Build your cross-platform service in a week with App Engine
jlugia
234
18k
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.4k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.8k
My Coaching Mixtape
mlcsv
0
110
HDC tutorial
michielstock
2
640
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
410
Evolving SEO for Evolving Search Engines
ryanjones
0
180
How to make the Groovebox
asonas
2
2.1k
Tell your own story through comics
letsgokoyo
1
900
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
2k
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
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でフルスタック開発する日も そう遠くないかも……?