Rust
はじめに 認証が動いた。だがそれは始まりに過ぎなかった。 前回の記事では、Next.jsでOry Hydra認証を実装した。OAuth2認可コードフロー、Cookie管理、ID Token署名検証、マルチテナント認証について解説した。 前提知識: この記事は前回の記事の続編です。…
はじめに 前回の記事では、RustでOry HydraのLogin/Consent Providerを実装した。5つのエンドポイント(GET/POST /login、GET/POST /consent、GET /logout)とHydra Admin APIの連携。Argon2idによるパスワードハッシュ、ユーザー列挙攻撃を防ぐテスト設計の…
はじめに あるプロジェクトで、電話番号が未登録のユーザーを検索するコードをレビューしていた。WHERE phone = NULL——一見正しく見えるこのクエリは、常に0件を返していた。データは確実に存在する。クエリもシンプル。では何が問題なのか。 答えはSQLの3値…
はじめに 年が明けた。月曜日。エディタを開いている。 認証プロバイダーを自分で実装できるか、と聞かれたら、たぶん「できる」と答える。OAuth2のRFCは読んだ。フローも理解している、と思う。ただ、「じゃあ書いて」と言われたとき、キーボードに手を置い…
はじめに 認可サーバーを構築するタスクがアサインされた。技術選定の裁量はある。仕事の合間にRFC 6749や技術書をいくつか読み始めた。 datatracker.ietf.org 帰宅後の深夜、週末の空き時間。3日目の深夜2時、私は確信した。 これは自前で作るべきではない…
はじめに テストは全部通っている。コードカバレッジも90%を超えている。なのに、本番環境でバグが見つかった。 私が実際に経験したことだ。原因を調べると、テストコードにassert(検証)が書かれていなかった。テストは「コードを実行しただけ」で、結果が…
はじめに 2025年が終わろうとしている。 先日、「なぜ『何でも作れる時代』に私は作れないのか」という記事を書いた。「代表作」がないという焦り、量をやることの重要性、そして引き算の必要性。書きながら、自分の弱さと向き合った。 syu-m-5151.hatenablo…
はじめに Rustは速い。だが、Rustで書けば速くなるわけではない。 ある日、APIのレスポンスが突然5秒を超えた。コードを見直してもバグはない。SQLも正しく書けている。途方に暮れながらログを確認すると、1リクエストで300回以上もクエリが発行されていた。…
はじめに テストを書いていて、奇妙なことに気づいた。合計金額のアサーションが通らない。期待値は10.00なのに、実際の値は9.99999999999983。コードにバグはない。SQLも正しい。では何が問題なのか。調べた結果、犯人は浮動小数点の累積誤差だった。金額カ…
はじめに 「論理削除?deleted_atカラム追加すればいいでしょ」この一言から始まる地獄を、何度見てきただろうか。 最初は簡単に見える。カラムを1つ追加するだけ。しかし、その「簡単さ」こそが罠だ。 論理削除は技術的負債の温床だ。WHERE句への条件追加忘…
cargo-coupling Web UI - Self-diagnosis view Introduction "I really don't want to touch this module..." If you've been developing software long enough, you know this feeling. Every change breaks something else. Tests are painful to write. U…
cargo-coupling を自己診断した時のweb ui です。 はじめに 「このモジュール、なんか触りたくないな...」 ソフトウェア開発をしていると、こんな感覚を覚えることがあります。変更するたびに他の箇所が壊れる、テストが書きにくい、そもそも何をしているの…
この記事は、Rust Advent Calendar 2025 6日目のエントリ記事です。 はじめに 前編からの続き ← API1 (BOLA), API2 (Broken Authentication), API3 (Mass Assignment)の解説はこちら 前編では認証・認可の基礎とデータ保護について解説した。後編では、リソ…
この記事は、Rust Advent Calendar 2025 5日目のエントリ記事です。 はじめに 先日、あるプロジェクトのコードレビューで「このエンドポイント、認証は通ってるけど認可は大丈夫か」と聞いたら、「認証してるから大丈夫でしょ」という返答が返ってきた。 そ…
はじめに 「Just use Postgres」という言葉を初めて聞いたのは、いつだったか覚えていません。Twitter か Hacker News か、あるいは社内の Slack か。どこで聞いたにせよ、私の反応は決まっていました。「また極端なことを言う人がいる」と。 「それ、〇〇で…
はじめに プログラミングにおいて「待つ」処理は避けられません。サーバからのレスポンスを待つ、データベースの処理が終わるのを待つ、ファイルの読み込みが完了するのを待つ——この「待ち時間」の使い方が、プログラムの性能を大きく左右します。 非同期処…
はじめに 最近、自分が書く文章が妙に真面目というか、ちゃんと役に立つことばかり意識していることに気づいた。もちろんそれは悪いことじゃないと思う。でも、たまには「これ、本当に誰かの役に立つのかな」と自分でも首を傾げるような文章を書いてみたくな…
はじめに 人間関係が数値化できればなぁって思ったこともありますか?僕はあります。「この人とは、ちょうどいい距離感だな」とか、「もうちょっと親しくなりたいけど、近づきすぎると息苦しいかもしれない」とか。そういう、言葉にしづらい感覚を、もし数字…
github.com はじめに コードベースが大きくなるにつれて、似たようなコードが散らばっていることに気づく瞬間がある。「あれ、これ前にも書いたような...」そう思いながらコードを眺めるのだけれど、変数名が微妙に違っていたり、処理の順序が少しずれていた…
はじめに 前回の記事では、Rust の Docker イメージサイズを 98%削減する方法を解説しました。その中で最も重要な役割を果たしているのが cargo-chef です。この記事では、cargo-chef の仕組みと動作原理を深く掘り下げていきます。 syu-m-5151.hatenablog.c…
はじめに 「Dockerでビルドすると遅いんだよね」「イメージが2GB超えちゃって…」 そんな会話はもう過去の話です。2025年、コンテナ化は劇的に進化しました。Rustも例外ではありません。cargo-chefとBuildKitキャッシュマウントの組み合わせでビルド時間を5-1…
cargo-watch、やめるってよ Rustを書いてると、気づくんですよね。保存ボタンを押すたび、手動でcargo checkとかcargo testとか叩いてる自分に。「あれ、俺って原始人だっけ?」みたいな気持ちになる。そこで救世主として現れたのがcargo-watchだったわけで…
はじめに こんにちは!今回は、コードエディタや各種開発ツールとAIエージェント間の通信を標準化する Agent Client Protocol (ACP) について、その内部実装と実践的な使用方法を詳しく解説します。 github.com 最近の界隈では、Model Context Protocol(MCP…
はじめに 前回の記事「RustでLinuxプロセス管理をしてみた」の続編として、今回はシグナル処理とプロセス間通信(IPC)について解説します。これらの技術は、システムプログラミングの根幹をなす重要な概念です。 doc.rust-lang.org サンプルコードはこちら…
はじめに これまでPythonとGoでプロセス管理システムを実装してきましたが、今回Rustでも実装してみました。各言語にはそれぞれ得意不得意があり、プロジェクトの要件によって最適な選択は変わります。変なとこがあれば教えてください。 この記事では、Rust…
はじめに ——あるいは、「知っている」と「理解している」の間 Rustのことは、知っていた。学習もしていた。実務でも使っていた。 でも、それは知っているつもりだった。 知ってるつもり 無知の科学 (ハヤカワ文庫NF)作者:スティーブン スローマン,フィリップ…
Introduction As developers, we often juggle multiple contexts throughout our day - switching between personal projects, client work, and perhaps some experimental code on the side. Each context might require different permissions, access l…
はじめに 「新規プロジェクトに参画したら、アプリケーションがRustで書かれていた...」 このような経験をされた方も多いのではないでしょうか。もしくは今後あるかもしれません。特に、オブザーバビリティの実装を担当することになったインフラエンジニアに…
はじめに MacBookでRustを使ってスクリーンショットを撮る方法について紹介します。この記事では、次の2つのアプローチを解説します: OpenCVを活用する方法 — 画像処理の多彩な機能を利用 外部ライブラリに依存しない方法 — シンプルながら効果的 それぞれ…
はじめに 前回の「Rust製MCPライブラリの内部実装を徹底解析」では、Model Context Protocol (MCP) のRust SDKの内部実装について詳しく解説しました。今回は、その続編として、examples/ディレクトリに含まれるサンプルコードを詳しく見ていきます。 github…