2023-01-01から1年間の記事一覧
Rocketの特徴 Rocketにはこれまで何が起きていたのか v0.5を使う 今回作るアプリケーションのお題 使用するクレートの追加 Routing JSON Fairings: データベース接続 1. コネクションプールを保持するための構造体を用意する 2. 設定ファイルに情報を書く 3.…
こんにちは、お手伝いの大櫛です。 RustにもOpenAPI関連のツールやライブラリなどが増えてきており、開発需要の高まりを感じます。 Rustに限った話ではないですが、OpenAPIとのインテグレーションパターンについては、サーバーのアプリケーションコードから…
前回はserdeの基本を理解することができましたので、次はserdeに登場するアトリビュートのうち、実務上よく利用するものを紹介したいと思います。具体的にはいくつかのアトリビュートと、実務上はenumのシリアライズ・デシリアライズで毎回迷いごとが発生し…
こんにちは、お手伝いの大櫛です。 今回はRustのテスト体験を快適にするテスト系ライブラリ・ユーティリティをいくつか紹介します。 記事中、例としてコード片を示す箇所があります。今回はRust 1.73.0を用いていますが、今後のリリースにより動作が変わって…
お手伝いの yuki です。 今日は serde の話です。最近仕事で serde を使っていて「これはバグでは??」と思った挙動がありました。具体的には untagged というものなのですが、同僚に「これはバグではなく仕様」というコメントをもらいました。たしかにドキ…
こんにちは、ペイルドの大竹です。 今回は外部サーバーと通信を行っているEC2インスタンスをECS on Fargateに移行した話をしたいと思います。 移行する前は以下のような構成となっていました。 背景 EC2インスタンスの運用にて以下の課題がありました。 弊社…
お手伝いの yuki です。前回に引き続き、小ネタを紹介します。 みなさんは Rust でのバリデーションチェック時、どうしていますか? まず考えられるのは自前実装です。手でバリデーションチェックをひたすら書く方法がまず考えられると思います。あるいは、…
お手伝いの yuki です。今日はクレートを使った小ネタです。claim という、アサーション関連の便利なマクロを提供するクレートがあります。意外と知られていない気もするので紹介しておこうと思います。 claim assert_matches! や Result の結果を判定するの…
こんにちは、お手伝いの大櫛です。 今回は、rustc/Cargoまわりの脆弱性紹介に引き続き、community crates関連の脆弱性を紹介していきます。 rustcと違い、ある脆弱性一つがRustユーザー全体に影響を与えるものではないため、比較的広くつかわれているcrateの…
paild 社でお手伝いをしている yuki です。前回に引き続き Dependency Injection 略して DI の話題を書いていきたいと思います。今回は Rust における DI についていろいろと考えてみました。今回紹介する実装はかなり単純な例を用いたもので、この記事から…
こんにちは、お手伝いの大櫛です。 今回はrustcや標準ライブラリ、Cargoについて発見された脆弱性のいくつかを紹介していきます。 Cargoについての補足ですが、一般的なセットアップツールの一つであるrustupを使う場合、rustcとCargoはRust toolchainとして…
イントロ はじめまして。ペイルドの中川です。 弊社はサーバーサイドの開発に Rust を採用しています。 運用監視ツールには Datadog を採用しているのですが、Datadog 公式の SDK には Rust が含まれていません。なんてこった。 この記事では Rust で Datado…
お手伝いの @helloyuki_ です。今回はポエムです。 今回は、Rust を始めた当時、プログラミング言語は Java しかまともに触ったことがない新米若手 Java エンジニアだった私[*1]が「見たことがなく、使いどころがわからなく理解が難しい」と感じたポイントに…
こんにちは大櫛です。Travis CIがオープンソースプロジェクトで使いづらくなったり、Azure PipelinesからGitHub Actionsになった途端*1爆発的な流行が生まれたりと、CIサービスにおいてもここ数年で色々な動きがありました。 特に技術記事・ブログのトレンド…
paild 社でお手伝いをしている yuki です。みなさんは Rust で DI をしようと思った際に困ったことはありませんか?この連載では、他のプログラミング言語で利用される DI パターンを参照しながら、Rust でそれを実装するためにはどのような工夫が必要かまで…