タグ

Rustに関するhajimehoshiのブックマーク (131)

  • Chevy Ray | How I Created 175 Fonts Using Rust

    In December of 2023 I launched the 175 Pixel Font Megapack, followed shortly by 42 individual packs for each font family. I created my own toolchain for generating, quality testing, and deploying these fonts... in Rust! In this post I'll walk you through the whole process. Check out the Pixel Font Megapack on itch.io! Before the MegapackBefore we talk about the new pack, let's talk about the old p

    Chevy Ray | How I Created 175 Fonts Using Rust
  • LogLog Games

    The article is also available in Chinese. Disclaimer: This post is a very long collection of thoughts and problems I've had over the years, and also addresses some of the arguments I've been repeatedly told. This post expresses my opinion the has been formed over using Rust for gamedev for many thousands of hours over many years, and multiple finished games. This isn't meant to brag or indicate su

  • Leveraging Rust and the GPU to render user interfaces at 120 FPS - Zed Blog

    Leveraging Rust and the GPU to render user interfaces at 120 FPS A modern display's refresh rate ranges from 60 to 120 frames per second, which means an application only has 8.33ms per frame to push pixels to screen. This includes updating the application state, laying out UI elements, and finally writing data into the frame buffer. It's a tight deadline, and if you've ever built an application wi

    Leveraging Rust and the GPU to render user interfaces at 120 FPS - Zed Blog
  • Rust の 所有権、借用、ライフタイムについて初心者目線で説明と整理を試みる

    自分のブログを辿ってみたところ Rust を 2020 年には書いているようだが、初心者を名乗らせていただく。なぜならブログのネタにする以外で Rust 書いたことないし、これも調べながら書いているからだ。もっと練習したい、どこかに Rust を書ける機会ないかな〜チラッチラッ 👀 なぜありふれていそうな題材で書くか 題材はありふれているし解説もたくさんあるが、それらを読んで理解できるのか?という疑問がある。というのも、所有権、借用、ライフタイム自体についての説明は至る所で見るが、これらが無いと何が大変なのか、導入することで何が解決されるかがよく分からないと思うからだ。勿論、そのような点まで解説してくれているものもたくさんあるが、正直なところ Not for Me だった。何が Not for Me だったかというと、C++ の知識やコンピュータサイエンスの知識があることが前提になってい

    Rust の 所有権、借用、ライフタイムについて初心者目線で説明と整理を試みる
  • Webサーバーアーキテクチャ進化論2023

    はじめに 最近プログラマーとしてのキャリアに一区切りつけようと思っており、これまでのプログラミングの勉強の集大成となるブログを書きたくなったので書く。初めてプログラミングをして、フロントエンド開発をして、サーバーから値が返ってきたときは「どういう仕組みで値が返ってきたんだ?」と疑問に思っていた。ずっと理解したくて理解できていなかった。だからずっと勉強していた。そして最近になってようやく自分の言葉で説明できるようになった気がしたのでブログを書きたい。 2015 年版が自分の原点であり、この記事を書くモチベーションになった このような記事は実は過去に存在している。 FYI: https://blog.yuuk.io/entry/2015-webserver-architecture その記事はサーバーがどういう仕組みで動いていて、どのように進化し、2015 年に至るかを解説してくれた記事だ。自

    Webサーバーアーキテクチャ進化論2023
  • Dioxus

    //! Simple, familiar, React-like syntax use dioxus::prelude::*; fn app() -> Element { let mut count = use_signal(|| 0); rsx! { h1 { "High-Five counter: {count}" } button { onclick: move |_| count += 1, "Up high!" } button { onclick: move |_| count -= 1, "Down low!" } } } //! Encapsulate state in components use dioxus::prelude::*; #[component] fn Stateful(name: String, age: u64) -> Element { rsx! {

    Dioxus
  • Rust Atomics and Locks by Mara Bos

    About this Book The Rust programming language is extremely well suited for concurrency, and its ecosystem has many libraries that include lots of concurrent data structures, locks, and more. But implementing those structures correctly can be difficult. Even in the most well-used libraries, memory ordering bugs are not uncommon. In this practical book, Mara Bos, team lead of the Rust library team,

    Rust Atomics and Locks by Mara Bos
  • Lifetime elision - The Rust Reference

  • Rust: imperative language 2.0

    Although Rust incorporates many methodologies from functional programming, it can rather be "an imperative programming language 2.0", considering its familiarity with mutable references. In this talk, I'll describe Rust in terms of mutable references. Rustは関数型プログラミングの手法を多く取り入れていますが、ミュータブルリファレンスを多用するというその性質から、Rustはむしろ「手続き型言語2.0」であるということもできるでしょう。 講演では、ミュータブルリファレンスに注目してRustの特徴を説明します。

    Rust: imperative language 2.0
  • Rustの型推論の概略 - 簡潔なQ

    概要: Rustの型推論の大枠を説明する。 なお、筆者もRustの型推論の動作を詳細に把握しているわけではない。 短くまとめると Rustの型推論はHindley-Milner型推論ベースである。したがって後方の式や文の内容から手前の型が推論されることもある。しかし以下に挙げるようなRust独自の特徴をもつ。 型推論は原則として関数定義の中で閉じており、関数の引数型や戻り値型は推論されない。これは、関数を抽象化の境界とするための意図的なものである。この意味で「局所的」というのであれば間違いではない。 ただし、let多相を含む型推論を避ける意図もあるかもしれない。 関数呼び出しや一部の演算子などは、その部分の制約を立てる段階で、型の一部分が判明している必要がある。この動作は推論順序の影響を受ける。 トレイトによりオーバーロード可能になっている関数や演算子は、射影型を使っている場合、ボトムアッ

    Rustの型推論の概略 - 簡潔なQ
  • Rust Memory Container Cheat-sheet - Qiita

    Repos: https://github.com/usagi/rust-memory-container-cs 文字で読み書きするとやや大変です。しばらく間を開けてRustを触ったりするとスコシ混乱するかもしれません。と、いうわけでRustでメモリーコンテナー系に触れるモードになった時用に1枚絵のチートシートを整理しました。 文字を書けるQiitaにポストするのでちょっとだけチートシートの解説も乗せます。 おまけ解説 Threads; スレッド群 (rev.0 -> rev.1 でこのチートシート上で最初に現れる選択肢に切り替わりました ⇔ Ownership; 所有権) Rustではマルチスレッディング実行の安全性を向上するため、 適当に確保したメモリーをスレッド間でうっかり共有できない(少なくとも簡単にはうっかりできない程度に難しい)仕組みがあります。その仕組みの核心は標準ライブラリ

    Rust Memory Container Cheat-sheet - Qiita
  • Rustスマートポインタ比較表 - Qiita

    以下補足です。 効率 トレードオフを強調するために、相対的な効率を星の個数で表しています。しかし、効率をことさら気にする必要はありません。他の多くのプログラミング言語では、Rustでいうところの Arc<Mutex<T>> をデフォルトで使っているような状況です。要件にあったものを使うことが大事です。 ライフタイム 「短命」とついているものは基的に、ある関数のスコープに紐付いた形でしか使えません。特に慣れないうちは、これらの型を構造体に入れて使うのはやめておいたほうが無難でしょう。 例外として、グローバル変数 (static, lazy_static!) は &'static 参照として扱うことができます 共有 「ポインタ」と聞くと、参照先が共有されている様子を思い浮かべる人が多いと思いますが、所有権の概念のあるRustでは必ずしもそのイメージは当てはまりません。 &mut T と Bo

    Rustスマートポインタ比較表 - Qiita
  • Maik Klein

    Announcing Unreal Rust 2022-09-04 Links Introduction What is unreal-rust? Editor components and reflection Blueprint Hot reloading Experimentation without crashing the editor What is the current state? No stable versioning / persitence No serialization Other What's next? Closing words Future blog posts Discussions Links unreal rust github Devlog on Youtube Introduction A few months ago I asked mys

  • 自作のRust製エミュレーターをWebブラウザーで動くようにした

    最近Rustでちょいちょい書いてたエミュレーターをWebブラウザーで動くようにしました。 現在のところ、ゲームボーイ・ゲームボーイカラー、ゲームボーイアドバンス、ファミコン、スーパーファミコンが動きます。 当初からブラウザーでも動かすことを念頭に置いていたので、コア開発が一段落したら対応させたいと思っていました。実際に動かすに当たっては思い通りに進んだところもあり、そうでないところもありといったところで、ところどころで気づいたところを書いておいたら誰かの参考になるかもしれないので、とりとめのない話ですが書き残しておくことにします。 一応ウェブアプリなのにJavaScriptTypeScriptも、ReactAngularも、npmwebpackも使わない、インド人完全無視カレーみたいなものになりましたが、それでもそこそこに良い感じにできた気はするので、私のようにフロントエンドから取り

    自作のRust製エミュレーターをWebブラウザーで動くようにした
  • Rustでファミコンとスーパーファミコンのエミュレーターを書いた

    ゲームボーイエミュレーター、ゲームボーイアドバンスエミュレーターに続いて、Rustでファミコンエミュレーター"Sabicom"とスーパーファミコンエミュレーター"Super Sabicom"を書きました。 名前にRustっぽさを出してみました。 前回作ったマルチエミュレーターMERUのコアとして実装したので、ステートセーブや巻き戻しなどの機能も使えます。MERUの対応コアはこれで4つになりました。 こちらからWindowsLinuxのプリコンパイルバイナリがダウンロードできるようになっています。 他のプラットフォームおよびソースコードからコンパイルする場合は ファミコンとスーパーファミコンどちらも一通り体の機能は実装してあるつもりです。スーパーファミコンは割と細かいところまでちゃんと動くようにしてあるはずなので、動かなかったり表示がおかしかったりするソフトがあればバグですので、ぜひご報

    Rustでファミコンとスーパーファミコンのエミュレーターを書いた
  • Advice for the next dozen Rust GUIs

    A few times a week, someone asks on the #gui-and-ui channel on the Rust Discord, “what is the best UI toolkit for my application?” Unfortunately there is still no clear answer to this question. Generally the top contenders are egui, Iced, and Druid, with Slint looking promising as well, but web-based approaches such as Tauri are also gaining some momentum, and of course there’s always the temptati

  • Reddit - Dive into anything

  • Panic を恐れるべからず

    Panic を恐れるべからず Rust で panic! や assert! の利用を躊躇うべきでないという話。 個人の見解マシマシでお送りします。 この記事は Rustその3 Advent Calendar 2019 の18日目の記事である[0]。 TL;DR 不正な値の存在の存在を許してはいけない。 不正な値が存在できてしまう時点で、未定義動作を覚悟するくらいのつもりでいるべきである。 満たされるべき条件を満たさない時点で、プログラムの内部的な整合性は既に破綻しており、未定義動作も同然の状態である。 これ以上余計なことをする前にさっさとクラッシュせよ。 整合性破壊バグから「うまく復帰」できると思うのは甘え (極論)。 もうちょっと詳しくは 題、大雑把な指針、まとめ を参照。 いろいろな panic Rust で panic させるにも様々な方法がある。 まずはそれらを見ていこう。 O

    Panic を恐れるべからず
  • Rust9x: Compile Rust code for Windows 95, NT and above

    Discuss on Reddit, URLO, HN tl;dr: see the project wiki on Github: rust9x/rust You might remember my old post about the journey to get at least a bit of Rust code working for Windows 98 SE. Well, I'm back, this time with a more ambitious package: Announcing Rust9x (Rust 1.61.0-beta) # Blazingly fast! Y2k compliant! Works everywhere! Over on Github you'll find a forked Rust repository containing tw

  • Effective Rust

    Release date: April 2024 Page count: 280 pages ISBN: 9781098151409 Available at: 🇺🇸 Amazon.com 🇬🇧 Amazon.co.uk 🇺🇸 Barnes & Noble 🇬🇧 Waterstones and many other book stores.