この記事はエムスリー Advent Calendar 2025 2日目 兼 マネジメントチームブログリレー9日目の記事です。 こんにちは、エンジニアリンググループ General Manager 兼 基盤チームリーダーの横本(@yokomotod)です。 今回はgoroutineについての自由研究です。 「軽量」「何万個も作れる」「並行処理が簡単に書ける」...そんなgoroutineの裏側はどうなっているんでしょうか。 なぜOSスレッドより「軽い」の? グリーンスレッドとは違うの? なぜパフォーマンスが高いと言われるの? この記事では、goroutineのようなランタイムをRustで自作することで、これらの疑問に答えることを目指しました。 ソースコードの全体は以下のリポジトリで公開しています。github.com なぜRust? OSスレッドは重い、のおさらい グリーンスレッドを作って

11月24日、bykozyが「Blog -Rust is a disappointment」と題した記事を公開した。この記事では、Rustが期待されてきた「C++の後継候補」としての役割を十分に果たしていないのではないかという問題提起を行い、とくにコンパイル速度の遅さ、言語としての複雑さ、メモリ安全性と信頼性のトレードオフ、可変共有状態の扱いにおける限界について詳しく紹介している。以下に、その内容を紹介する。 11月24日、bykozyが「Blog -Rust is a disappointment」と題した記事を公開した。この記事では、Rustが期待されてきた「C++の後継候補」としての役割を十分に果たしていないのではないかという問題提起を行い、とくにコンパイル速度の遅さ、言語としての複雑さ、メモリ安全性と信頼性のトレードオフ、可変共有状態の扱いにおける限界について詳しく紹介している

2012年にMozillaが立ち上げたウェブブラウザレンダリングエンジン開発プロジェクト「Servo」が、ついにバージョン0.0.1のリリースにたどり着きました。 Servo 0.0.1 Release - Servoaims toempower developers with a lightweight, high-performance alternative forembedding webtechnologies in applications. https://servo.org/blog/2025/10/20/servo-0.0.1-release/GitHub - servo/servo: Servoaims toempower developers with a lightweight, high-performance alternative foremb

Linux DailyTopicsLinus、Rustのフォーマットチェックを「無神経でクレイジー」と酷評 10月12日に予定されている「Linux 6.18」のマージウィンドウ終了と最初のリリース候補版(Linux 6.18-rc1)の公開に向け、プルリクエストのチェックに大忙しのLinusだが、マージウィンドウ期間中はプルリクエストに対するLinusの手厳しい批判が増える時期でもある。10月1日、LinuxグラフィクスメンテナーのDaveAirlie(Red Hat所属)が提出したDRM(Direct Rendering Manager:GPUを制御/管理するカーネルサブシステム)のプルリクエストに対しては、コーディングのスタイルに加え、Rustのフォーマットチェック機能に対するLinusの不満があふれ出たものとなった。 Re: [git pull] drm for 6.18
2025/09/10に開催されたイベント「Rustの現場に学ぶ」の発表資料です https://findy.connpass.com/event/359456/

9月9日、Ben Williamson氏が「Elements ofRust – Core Types and Traits」というページを公開し、話題を呼んでいる。 このページは、Rustの型システムを視覚的に理解できるインタラクティブなガイドとして整理されている。Rustに存在するすべての型をカテゴリーごとに分類してあり、それぞれがどの「箱」に属するかを直感的に把握できるようになっている。 一方で、Vec、String、HashMap といった標準ライブラリの構造体は、この図には含まれていない。これらはコンパイラ組み込みの特殊な要素ではなく、単なるライブラリ実装にすぎないためだ。つまり、本ページが対象とするのは、構文や挙動を直接支える言語レベルの構成要素である。 詳細はElements ofRust – Core Types and Traitsを参照していただきたい。

Turn Compute Into Intelligence Train and deployAI models efficiently on any deviceCreate neuralnetworks that run better on any hardware, for both training and inference. Burn's novel approach supports dynamic graphs andshapes with the performance of static graphs, thanks to our advanced multiplatformJust-in-Time compiler. Core Principles We do not compromise on what matters the most in artifi
はじめに ——あるいは、「知っている」と「理解している」の間Rustのことは、知っていた。学習もしていた。実務でも使っていた。 でも、それは知っているつもりだった。 知ってるつもり 無知の科学 (ハヤカワ文庫NF) 作者:スティーブン スローマン,フィリップ ファーンバック早川書房Amazon 日々Rustで開発し、BoxとRcとArcを使い分け、tokio::spawnでタスクを生成し、?演算子を当たり前のように書いている。FFI?PyO3使えばいいでしょ。WebAssembly?wasm-bindgenがあるじゃない。技術的には、確かに「使える」レベルにはあった。 でも、心のどこかで感じていた違和感があった。 オートバイのエンジンを分解できる人と、エンジンが動く原理を理解している人は違う。コードが動くことと、なぜそう書くべきかを理解することも違う。私は前者だった。メカニックではあった
はじめにyukiです。RustのカンファレンスであるRust.Tokyoのオーガナイザーを務めているほか、『実践Rustプログラミング入門』『RustによるWebアプリケーション開発』といった書籍を共著で執筆しました。 この記事のテーマは、近年利用が進み人気が高まるRustのバックエンド開発における動向です。前半で、現在人気のあるライブラリの動向を簡単にまとめます。次に、私が現在開発の動向に注目しているいくつかのライブラリについて紹介します。 人気のバックエンド開発ライブラリの動向Rustによるバックエンド開発[1]では、やはり最近でも次の2つのクレートが選ばれる傾向にあるようです。「デファクトスタンダード」と呼べるくらいには、そろそろなってきたのではないでしょうか。 axum actix-web 数年前であればactix-webが一強ではあったものの、近年はtokioチームが開発するax

はじめに すいません、連日の記事があったため少し煽りっぽいタイトルにしてしまいました。 平常時の感覚だったら、「Rustに入門するなら、同期Rustから始めるのがおすすめ」 とかにしてた記事だと思います。 この記事で主張したいことは以下です。Rustは難しいRustに入門するときの題材に、"Web Backend"や"Wasmでブラウザで動く何か"などの非同期Rustで無ければ達成できない題材を採用している人はそれがRust初級者への道を阻んでいる可能性がある 過去に非同期Rustで入門した人を否定する記事ではないRustに入門することが目的なら、非非同期Rustから始めた方が良いのではないか? ここで長く言葉の定義をしても微妙なので、下に言葉の定義 というセクションを用意してあります。 前提 タイトルに書けていない前提を書いています。 この記事の指す「Rust入門者」はLL言語(P

4月16日、Borretti氏が「Two Years ofRust」と題した記事を公開し、注目を集めている。この記事では、Rustを用いた2年間の開発経験の振り返りとRust言語の特徴について詳しく紹介されている。 4月16日、Borretti氏が「Two Years ofRust」と題した記事を公開し、注目を集めている。この記事では、Rustを用いた2年間の開発経験の振り返りとRust言語の特徴について詳しく紹介されている。 以下に、その内容を紹介する。 この記事では、大きく「良い点(TheGood)」と「悪い点(The Bad)」に分けてRustの特性が語られている。 TheGoodRustの良い点として、筆者は以下を挙げている。 パフォーマンス(Performance)Rustは高速に動作する。どの言語でも低速なコードを書くことは可能だが、Rustはボトルネックを取り除け

typenum は、コンパイル時に評価される型レベルの数を扱う crate である。 型レベル数の主な用途として次のようなものがある。 配列の長さを型として表現 単位(メートル、キログラムなど)を型として扱う際の数値計算 Typestate パターンでの状態遷移の順序関係の表現 型レベル数の利点は、コンパイル時に計算が行われることにある。 これにより、実行時のオーバーヘッドを無くしつつ、型システムを通じた安全性の保証が得られる。 基本的な使い方 typenum では、次の 3 種類の型レベル数を提供している。 use typenum::{Sum, U2, P3, N2}; // U: 符号なし整数 type A = U2; // 2 // P: 正の整数 type B = P3; // +3 // N: 負の整数 type C = N2; // -2 これらの型に対して様々な演算ができる。

この記事を読んで1Rustユーザーとして思ったことを書いた。 全体を通してWASM固有の問題にハマってしまっているRustをスクリプト言語と同じ枠で見てしまっている の2点が辛さの原因であると感じた。 前者について、この方はフロントエンドにRustを使っているようだがここは確かに整備が行き届いてない分野でWASM特有の問題とJSとのFFIの辛さがもろに感じられて辛いと思う。 割となんでもかんでもRustを使う自分であってもWebフロントエンドにはおとなしくTSを使うようにしている(ただ、dioxusはホットリロードを開発中だったりと結構頑張っているようなのでいつかはRustでフロントエンドも現実的になるかもしれない)。 後者について、この記事では全体的に「JSやPythonではこんなに簡単だったのにRustでは難しい/エラーが出る」という評価が多いが、これは後述するようにRustが提供

A lightweight scripting language forRust applications. About Docs Install Playground About News Docs Playground
きっかけ このツイートが流れてきたのがきっかけでした。もともとRustには多少なりとも興味があったので せっかくだから読んで学んでみよう、ということで、プログラミングRustの第2版を購入して読むことに。本を読んだ感想 基礎の基礎から順を追って学習するといった内容ではなく、サンプルコードやRustの機能の説明をステップバイステップで行っていき、各章の最後に一緒にコードを書いて何か作る、といった方式で せっかちな自分にとっては有難い構成でした。 特に、「C++ではこんな事が起きるけど、Rustではこんなことは起きない」といった、C++との比較を通してRustの特色を説明している点が非常にわかりやすかったです。また、プログラミング言語の歴史や背景にも触れながら、Rustが他の言語では解決できなかった課題をどのように克服してきたのかが理解できる、素晴らしい一冊でした。 最初は思想強めだな、な

PayPayの6年の歴史の中で、私たちは急速な成長を遂げてきました。現在、6700万人以上のユーザーにサービスを提供し、日々数百万件の決済を処理しています。しかし、これを成功させるためには、トラフィックと信頼性の要求を満たすための技術的な挑戦が伴います。 PayPayは設立当初からJavaとNodeJSを採用しており、これらの技術は非常にうまく機能してきました。しかし、成長に伴いサービスをスケールアップする必要が生じ、これによりKubernetesクラスターでのCPUとメモリの使用量が増加しました。これにはサーバーコストの増加が伴います。2023年末、私たちはコアサービスでのトラフィックをより効率的に処理する方法を模索し始め、GraalVMやGo、Rustなどさまざまな技術を調査しました。Rustは、その優れたパフォーマンスとメモリの安全性が保証されていることから、PayPayの多くのユ

昨今、ChatGPTをはじめとする会話型AI(人工知能)が人気ですが、1990年代後半にも簡単な会話ができる「人工無能」と呼ばれる会話ボットが流行したことがありました。現代のAIに比べればほとんど役に立たないものですが、簡単に作成できて言葉遊びを楽しめて面白いものです。Rustの学習題材としてぴったりなので作成してみましょう。 人工無能を実行したところ 会話型ボットのルーツ「人工無能」SF小説や物語では、感情を持ったロボットが登場し、あたかも人間のように会話する場面が描かれます。日本のアニメでは、鉄腕アトムやドラえもんなど、とても親近感を覚えるロボットが登場します。昨今の会話型AIには感情はないものの、人間とまともな会話ができるという点では、理想のロボットに近づいていると言えるでしょう。 今回作成する人工無能は、インターネットが普及した1990年代後半から2000年代において、流行したも

組込みRustや自作OSなどにおいて、従来言語より高い安全性があるとされているRustは注目される一方、Rustでも低レイヤー分野で頻発するメモリアクセスやインラインアセンブラなどでunsafeブロックが存在が多くなりがちです。 このunsafeブロックが多くなるので、結局Rustでこのような低レイヤー分野を触っても意味がないのでは?安全ではないのでは?という疑問が投げかけられることがしばしばあります。 筆者はTwitterや過去のブログで、組込みRustにおいてのunsafeとの付き合い方について触れていきましたが、内容としては分散していたので今一度この疑問に対するアンサーをまとめることにし、この論争に終止符を打とうと思います。Rustにおけるunsafeとは そもそもunsafeとは何かというのはTheRustProgramming Languageのドキュメントにも詳しく書かれ

リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く