Rust による外部 REST サービスとの非同期通信実装

JSONPlaceholder(https://jsonplaceholder.typicode.com/)は、RESTful インターフェースの動作検証に特化した無料のモック API サービスです。本稿では、Rust を用いてこのサービスと連携し、CRUD 操作を非同期で実行する方法を解説します。 対象エンドポイントとデータ構造 以下のエンドポイントを対象とします: GET /posts/1 — 単一投稿の取得 GET /posts — 投 ...

7月21日 21:38 投稿

Rustの非同期・同期処理とスレッドモデルの仕組み

Tokioなどの非同期ランタイムを用いた開発では、main関数に#[tokio::main]マクロを付与して記述するケースが一般的です。一見すると非同期関数として動作するように見えますが、コンパイル時に展開される実際のコード構造は同期ベースです。このマクロは構文糖衣であり、内部的には以下のような同期関数に展開されます。 fn main() { let rt = tokio::runtime::Builder ...

7月17日 21:12 投稿

RustでPostgreSQLデータベースに接続する方法

1. 同期接続の実装 まず、Cargo.tomlに以下のクレートを追加します: postgres = "0.19.7" use postgres::{Client, NoTls, error::Error}; fn main() -> Result<(), Error> { let mut db_connection = Client::connect("host=localhost port=5432 dbname=myappdb user=appuser password=mypassword", NoTls).unwrap(); for record in db_connection.qu ...

7月14日 23:50 投稿