Happy Developing

楽しい開発ライフ 🦀

Rust Atomics and Locksを読んだ感想

読んだ本 Rust Atomics and Locks 著者: Mara Bos 楽しみにしていたRust Atomics and Locksを読んだので感想を書いていきます。 Kindle版の 2022-12-14 First Releaseを読みました。 読んだ本 まとめ Chapter 1 Basics of Rust Concurrency Interior mutabil…

RustでOpenTelemetryをはじめよう

本記事ではRustでOpentelemetryをはじめることを目標に以下の点について書きます。 OpenTelemetryの概要 RustのapplicationにOpenTelemetryを導入する方法 前半は公式docを読みながら登場人物を整理し、後半は実際にdocker-compose上でそれらを動かします。 …

もっとCPUの気持ちが知りたいですか?を読んだ感想

読んだ本 もっとCPUの気持ちが知りたいですか? タイトルに惹かれて読んでみたので感想を書きます。(電子書籍 初版) 目次は本書のWebページから見れます。 以下のような方が対象読者として挙げられていました。 ■ CPU の内部で行われていること(主にソフト…

tracing/tracing-subscriberでログが出力される仕組みを理解する

本記事ではRustのtracing/tracing-subscriberでログが出力される仕組みをソースコードを読みながら理解することを目指します。 具体的には以下のコードにおいてtracingがどのようにしてログを出力するかを見ていきます。 use tracing::{info, info_span}; fn…

GraphQL Specificationを読んでみる

本記事ではGraphQLの仕様を読んだ感想について書きます。具体的にはOctober 2021 Editionです。 仕様を読んでみようとおもったきっかけなのですが、Githubのgraphql apiにリクエストを送ろうとHttp requestを作っていた際に最終的にどういうjsonのbodyを作れ…

cqrs-esからみるRustのCQRS & Event Sourceの実装

最近会社でThis week in rustならぬThis week in fraimという会が週1で行われる様になりました。そこでCQRS and Event Sourcing using Rustというドキュメントを教えてもらいました。 このドキュメントはcqrs-rsというRustのCQRS lightweight frameworkにつ…

proc-macro-workshop/builderをやってみる

本記事ではdtolnay先生のproc-macro-workshopのbuilderをやっていきます。 workshopはprocedural macrosの学習を目的に作られており、workshop内の各projectをstep by stepで実装していくことで自然とprocedural macrosに慣れることができます。 本workshop…

RabbitMQ Essentials 2nd Editionを読んだ感想

読んだ本 RabbitMQ Essentials - Second Edition 2020出版でRabbitMQ関連の本で比較的新しめだったのと、Taxi ApplicationにRabbitMQを組み込んでいくという形がおもしろそうだったので読んでみました。 1 A Rabbit Springs to Life 概要やインストールにつ…

RabbitMQ TutorialsをRustでやってみる

本記事ではRabbitMQ TutorialsをRustでやっていきます。 RabbitMQはAMQP 0-9-1というプロトコルの実装という位置づけなので、登場するコンセプトについてはAMQPに基づいて理解していきます。(以降AMQPはAMQP 0-9-1を前提にします) Tutorialsは以下の7つから…

deadpoolでConnectionPoolを作る

本記事では、deadpoolを利用したConnectionPoolの作り方とその仕組みについてみていきます。 外部リソースを抽象化した形でPoolが提供されているので同時利用数に制限のある外部リソースを複数作成して、必要に応じて使いまわしたい場面においてdeadpoolが利…

RustのAPI Guidelinesを読んでみる

Rustのブログ記事でよく言及されることが多いので、API Guidelinesを読んでみました。 本GuidelinesはRustのlibrary teamによってメンテされているみたいです。 Guidelinesの位置付け 本Guidelinesの位置付けはAboutで述べられています。 These guidelines s…

error-stackを試してみる

この記事では最近(2022-06-10)0.1.0がリリースされたerror-stackを試してみます。 READMEには error-stack is a context-aware error-handling library that supports arbitrary attached user data. とあり、crate/moduleで利用する、Result型を提供してお…

tower::Service traitを理解する

tower::Service traitについての公式のGuideがとてもがとてもわかりやすかったです。 そこで本記事ではこれを辿りながらtower::Serviceがなにを抽象化しようとしているかの理解を試みます。(libraryのAPIがどうして今のsignatureに至ったのかをここまで丁寧…

入門WebAssemblyを読んでWASMをはじめた

読んだ本 入門WebAssembly The Art Of WebAssemblyの翻訳書です。 本書を読みながらサンプルコードを写経したので感想を書いていきます。 著者のWebサイトには他にもWebAssemblyについてのトピックがあります。 サンプルコードはGitHubから見れます。 canvas…

Rustのexponential retry実装 againのソースを読んでみる

本記事では、Rustでexponential retryの機能を提供するagainのソースを読んでいきます。 (lib.rs 1ファイルだけの小さなcrateなのですぐ読めます) 基本的にproductionでnetwork callを行う際はretryが必要になってくると思います。sidecar等の透過的なinfra …