公開日: 2025 年 3 月 19 日 Skrifa は Rust で記述されており、すべてのユーザーにとって Chrome でのフォント処理を安全に行うために FreeType の代替として作成されました。Skrifa は Rust のメモリセーフティを活用し、Chrome のフォント技術の改善を迅速に反復できます。FreeType から Skrifa に移行することで、フォントコードを変更する際にアジャイルかつ大胆な対応が可能になります。セキュリティ バグの修正に費やす時間が大幅に短縮され、アップデートの迅速化とコード品質の向上につながっています。 この投稿では、Chrome が FreeType から移行した理由と、この移行によって実現した改善点について説明します。 FreeType を置き換える理由 ウェブは、ユーザーがさまざまな信頼できないソースから信頼できないリソースを取得し
この記事は Rust Advent Calender 2024 の 11 日目の記事です。 こんにちは。NTT コミュニケーションズの @ucchy です。普段は SkyWay という WebRTC プラットフォームの開発や WebRTC リサーチャーをしています。 記事の背景 私は、2024 年に入ってから Media over QUIC Transport のプロトコル実装(moq-wasm)を Rust で書き始めました。Python や TypeScript の経験はあるものの、Rust は初めてだったため、多くの点で「良くない」コードを書いてしまいました。 1 年間 Rust を書いていて、少しずつ「より良い書き方」も分かってきたので、「とりあえず動いてしまう書き方」と自分が考える「より良い書き方」をまとめてみたいと思います。 「とりあえず動いてしまう書き方」と「より良い書き方」
Rust言語を、人命に関わるような決定的に安全性が重要なシステムに使用することをサポートする「Safety-Critical Rust Consortium」設立 Rust言語を推進する「The Rust Foundation」は、人命や財産に関わるような安全性が決定的に重要になるシステムのためにRust言語を責任を持ってサポートするためのコンソーシアム「Safety-Critical Rust Consortium」の設立を発表しました。 Rust言語は、C言語のように低レイヤのシステム開発向けに作られたプログラミング言語です。 不正なメモリ領域を指すポインターなどを許容しない安全なメモリ管理や、マルチスレッド実行においてデータ競合を排除した高い並列性を実現している点などの特長を備えているため、安全かつ高速なアプリケーション開発を実現します。 セーフティ・クリティカルとは? 「セーフティ
Rustでは並行性を持つプログラムを安全に記述することができます。本書はその並行プログラムの基盤となる、アトミック操作とロックの仕組みについての理解を深め、より安全で効率の良いコードを書くための指南書です。難解だと思われがちなアトミック処理、ロック、メモリオーダリングのような低レイヤを詳細に理解し、アーキテクチャやOSによる相違を知ることで、安全で高性能な並行処理プログラムを実装できるようになります。Rustユーザはもちろん非ユーザにとっても低レイヤプログラミングの優れたリソースとなる一冊です。 序文 まえがき 1章 Rust並行性の基本 1.1 Rustのスレッド 1.2 スコープ付きスレッド 1.3 所有権の共有と参照カウント 1.3.1 static 1.3.2 リーク 1.3.3 参照カウント 1.4 借用とデータ競合 1.5 内部可変性 1.5.1 Cell 1.5.2 RefC
だれでもできるシリーズとして、Rustでカーネルモジュールを実装しながら学んできましたが(役に立たないキャラクタデバイスドライバなど)、そろそろ実際に使える機能を実装したいころですよね! 今回は、筆者が実装したネットワークPHYドライバが、Rustで実装された初めてのデバイスドライバとしてLinuxカーネルに採用された話を紹介します。 誤解:LinuxカーネルがRustをサポート「LinuxカーネルがRustをサポートした」というニュースを見て、Rustのコードがどんどん採用されていると誤解している方もいるようです。このニュースは、「LinuxカーネルをRustでも書けるようになりましたが、実際に何かを実装するかどうかは未定」という意味です。Linuxカーネルは、メモリマネージメント、ネットワーク、暗号など、数多くのサブシステムで構成されており、それぞれのメンテナが、コードの採否を判断しま
グーグルではたらくソフトウェアエンジニアです。 ご意見やご質問 あるいは Typo 等を見つけたときは GitHub Issues にお願いします。答えられる範囲でできるだけ答えますね。 この記事は不定期にアップデートしてできるだけ最新の状態を反映させるようにしていますが、いくつか内容が古い可能性があります。 連絡先は? (Contact Info) Mail: mailto:hayato@google.com Google+: google.com/+HayatoIto GitHub: github.com/hayatoito Twitter (inactive): @hayatoito Twitter: @shadow_hayato IRC freenode: hayato テックリード (Tech Lead) Google における Tech Lead (テックリード) とはどのよう
"わからせる" って読むんですよ。 Rust の鬼門とされる「所有権」「ライフタイム」などを、ヒープとスタックの違いなどの基礎からちゃんと説明します。 【Rust開発環境構築】 実はいい動画があるんですよ→ https://youtu.be/677kcyyPwJ4 ★宮乃やみさん(コラボ相手) X: https://x.com/miyanoyami83 YouTube: https://www.youtube.com/@miyanoyami 【Rustに興味がある方向け情報】 [初級]Rustなんでもお悩み相談→ https://youtube.com/watch?v=C_qKda3WO_8 [初級]GraphQLサーバーをRustで→ https://youtube.com/watch?v=qZSYrggRQVI [中級]Rustが題材のCTFを解く(冒頭1時間)→ https:/
この記事は一休.com Advent Calendar 2023 25日目の記事です。 一休レストランでは、よりスムーズな予約体験の提供を目的とするシステムのリニューアルを進めています。その一環として、2023年10月から、レストラン個別ページの表示から予約までのスマートフォンビューにおいて、バックエンドのサーバをRustで書かれたものに置き換えました。 一休レストランの Rust バックエンドが正式リリースされました。https://t.co/7N4VGv5ej9 このページのスマートフォンビューはバックエンドが Rust で書かれた GraphQL になってます— naoya (@naoya_ito) October 4, 2023 本番運用が始まって3か月近く経ちましたが、これまで安定して継続的な開発と運用ができています。これはRustだからと構えることなく、「ふつう」のバックエンド
はじめに 僕はDeno Land Inc.でDenoを利用したサーバレスエッジホスティングサービスのDeno Deployを開発するチームに所属しています。OSSのほうのDenoのメイン言語はRustで、Deno Deployのバックエンドも同様にRustで書かれています。 今年のアドベントカレンダーで一休さんから以下の記事が公開されましたが、日本でもRustをWebバックエンドの言語として採用する企業がじわじわと増えてきている印象があります。 Deno DeployのバックエンドをRustで開発してきて、RustでWebバックエンドを書くことのメリットやデメリットをいくつか感じたので、この記事で紹介したいと思います。 Deno Deployの構成 まず、ざっくりとDeno Deployのバックエンドの構成を紹介します。 多くのコンポーネントがありますが、ここではどのようにRustを利用し
この記事は Rust Advent Calendar 2023 シリーズ2 の1日目の記事である。 Rustは良くも悪くもシステムプログラミング言語なので、何も工夫しなければデバッグの体験がC言語と同じレベルになってしまう。例えば「rust lldb」でググると上位に Debugging Rust programs with LLDB is a nightmare というスレッドが出てきてしまう。 使うべきツールを知っていれば幾分かマシな体験にできる。Rustコンパイラはデバッガとして LLDB, GDB, WinDbg/CDB をサポート していて、僕はWinDbGは10年くらい触ってないので、この記事ではLLDBとGDBについて書く。 LLDB Apple SiliconのMacだとGDBが使えないので、必然的にLLDBを使うことになる。 CodeLLDB GDBと同じく、LLDBにも
Bevy + WebGPUPosted on May 17, 2023 by Carter Anderson ( @cart cartdev ) I'm excited to announce that Bevy's main branch now supports WebGPU rendering on the web! This means you can play with it now by checking out our repo provided you have a supported web browser (WebGPU is still in the process of rolling out). You can also explore our live WebGPU examples. The upcoming Bevy 0.11 release will ha
The best Linux Foundation classes Want a good tech job? Then you need to know Linux and open-source software. One of the best ways to learn is via a Linux Foundation course. Read now The Rust programming language entering the Linux kernel has been coming for some time. At the 2020 Linux Plumbers Conference, developers started considering using the Rust language for new Linux inline code. Google, w
Rustの勉強に良さげな学習リソースをまとめます。 はじめに Rust学習リソースまとめ The Rust Programming Language Tour of Rust Rust by Example The Rust Reference The Cargo Book Crate docs Rust API Guidelines Rust Design Patterns The Rustonomicon Secure Rust Guidelines Command line apps in Rust おわりに 参考 はじめに こんにちは、@bioerrorlogです。 最近、Rustを触り始めました。 多様な領域で盛り上がりを見せているRustですが、私は最近ハマっているブロックチェーンのエコシステムでRustが使われることが直接の理由となり、Rustに入門しました。 Rustは学習
wasm-packを使うことで、ビルドしてwasm-bindgen-cliでさらに変換処理を行い、npmで配布可能なパッケージにするという多段階必要なビルド手順をまとめることが可能です。 またnewコマンドのようなテンプレートから生成する機能などもあり、より手軽にWasmの実行を行えます。 後述のTrunkとの違いは、wasm-packはwebpackなどのJavaScript側で使われるバンドラーなどと合わせて使うことが想定されていることです。 webpackと合わせて使わない場合には今回のテーマであり後述するTrunkを利用したほうがより簡単にWasmの実行を行えます。 wasm-opt GitHub binaryenというリポジトリでwasm-optというツール含むいくつかのツールが作られています。 wasm-optはその名の通りWasmの最適化をしてくれるツールです。 与えるオプシ
Everything Is Broken: Shipping rust-minidump at Mozilla – Part 1 For the last year I’ve been leading the development of rust-minidump, a pure-Rust replacement for the minidump-processing half of google-breakpad. Well actually in some sense I finished that work, because Mozilla already deployed it as the crash processing backend for Firefox 6 months ago, it runs in half the time, and seems to be mo
An article titled Rust Is Hard, Or: The Misery of Mainstream Programming came out today and it's getting a lot of attention. I have a feeling that it's viewed in a wrong context, so I'd like to comment on the issue raised there. A lot of the comments to the article are in a tone of "this is precisely the reason why I don't learn Rust, it's just too hard" or "just don't use async, it's too hard, ot
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く