タグ

rustに関するzyzyのブックマーク (157)

  • mizchi on Twitter: "ChatGPTで Rust に nom でS式パーサ書いてっていったら本当に全部実装した"

    zyzy
    zyzy 2023/06/14
    Crate.ioまできっちり把握してるのか……。
  • Bevy + WebGPU

    Bevy + WebGPU Posted on May 17, 2023 by Carter Anderson ( @cart @cart_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 rel

    Bevy + WebGPU
    zyzy
    zyzy 2023/05/22
    Bevy公式サイト内のニュースなのにBevyの説明からしてくれるw(そんだけ注目されてる記事なんだろうけど)
  • Javaエンジニアだった私が当時困ったRustのコンセプト - paild tech blog

    お手伝いの @helloyuki_ です。今回はポエムです。 今回は、Rust を始めた当時、プログラミング言語は Java しかまともに触ったことがない新米若手 Java エンジニアだった私[*1]が「見たことがなく、使いどころがわからなく理解が難しい」と感じたポイントについて紹介します。対象とするソフトウェアのレイヤーが低いか高いかを問わず、とにかく Rust をやってみて理解するまでに時間がかかり、難しいと感じたポイントについて紹介します。 Rust の「メモリ安全」って、結局何 所有権とライフタイム 参照 スマートポインタ 代数的データ型 関数が第一級である モジュールシステム self 型クラスという側面でのトレイト まとめ 私が Rust をある程度使いこなせるようになるまでの話 「難しい」って何?、の話 Rust の「メモリ安全」って、結局何 そもそも論ですが、Rust が取

    Javaエンジニアだった私が当時困ったRustのコンセプト - paild tech blog
    zyzy
    zyzy 2023/05/11
    JVM畑はScalaを間に挟むと関数型由来の概念理解しやすいのは本当にそう
  • Rust のセミコロンを徹底理解する - Qiita

    Rust を書きはじめて日が浅い私は「ここにセミコロン書いていいんだっけ?書かなくていいんだっけ?」と混乱することがよくあります。 ちょっと作為的ですが例ですが、たとえばこういうとき。 #[allow(dead_code)] fn main() { struct Foo {x: i64} // ◁─┬─ 0個でも1個でもいい struct Bar {x: i64}; // ◁─┘ struct Baz(i64); // ◁─┬─ 1個でも2個でもいい struct Qux(i64);; // ◁─┘ const A: i64 = 1; // ◁─┬─ 1個でも2個でもいい const B: i64 = 1;; // ◁─┘ let _x = 1; // ◁─┬─ 2個だと unnecessary trailing semicolon と怒られる // let _y = 1;; // ◁─┘

    Rust のセミコロンを徹底理解する - Qiita
    zyzy
    zyzy 2023/05/09
    ちょいちょいこんがらがるやつ
  • bevy/crates/bevy_ecs/src/system/query.rs at main · bevyengine/bevy

    zyzy
    zyzy 2023/05/01
    bevy使ってる時&mut queryのforのパターンマッチの挙動謎だと思ってたら、&や&mutにinto_iter実装して、そこでself.iterとかself.iter_mutとか呼んでるのかコレ。
  • Patterns - The Rust Reference

    zyzy
    zyzy 2023/04/30
    参照をパターンマッチしたら勝手にrefがついたのと同じ扱いになるの、そういう仕様なのか。
  • Rustのライフタイムについてのよくある誤解

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    Rustのライフタイムについてのよくある誤解
    zyzy
    zyzy 2023/04/27
    クロージャの挙動知らんかった
  • 【Rust】生ポインタとその演算(戻せるスライスの実装)

    Rustでスライスを扱う場合前に進めることはできても、後ろに戻すことができない。 C言語のプログラムから移植するなどでそのような操作をしたい場合にどうしたらいいか調べてみた。 モチベーションC言語で組まれたプログラムをRustで実装する際に、配列の途中を指すようなポインタはスライスで扱うことになると思う。 スライスはC言語でいうところのポインタに加えて長さを保持しているもので(ファットポインタ)、それによって範囲外アクセスが起きないようチェックできる。 ポインタを前に進める場合に対応するには、スライスをさらにスライス取ればいい: でポインタを戻す場合にはどうしたらいいか。 スライスでは後ろに戻した場合の安全性を確認できないため、そのような操作ができない。 ということで、生ポインタの演算に手を出してみた。 生ポインタの操作生ポインタの取得生ポインタを取得するには、参照から as *const

    zyzy
    zyzy 2023/04/27
    wrapping_offset は境界をはみ出ても勝手に丸めてくれるから構わないけど、offsetははみ出たら未定義動作踏むからはみ出ないように自分で制約しろ、って事じゃないかな?
  • Rustのself引数まとめ - 簡潔なQ

    概要: Rustの随所でself引数は特別扱いされている。それらの挙動について調べた。 self引数とメソッド Rustではnon-staticメソッドは self という特殊な名前の引数を持つ関数として定義されている。例えば、 struct A; // parse_self_arg impl A { fn f1(self: A) {} fn f2(self: &mut A) {} fn f3(self: &A) {} fn f4(self: Box<A>) {} // 生存期間を明示すると以下の通り // fn f2<'a>(self: &'a mut A) {} // fn f3<'a>(self: &'a A) {} } と書くと、 f1, f2, f3 はメソッドになる。 self はキーワードであり、この名前の引数は特定の条件下でのみ宣言できる。それは以下の場合である。 trai

    Rustのself引数まとめ - 簡潔なQ
    zyzy
    zyzy 2023/04/26
    今更だがmutは修飾子だが&mutは型なんだよな。ライフタイムも型の方に記載するわけだし
  • Rustにはシャローコピーがわからない - Qiita

    小説です ※ 読むとRustや所有権・参照とちょっとだけ仲良くなれるかもしれません ※ まとめやメッセージの類は最後のあとがきに書いてあります(読んで) プロローグ 放課後のチャイムを合図に親友のCSSちゃんが現れた。 CSS「TSちゃん放課後ヒマでしょ?駅前にできたECサイトのデザイン見ていかない?」 TypeScript「気になる!...けどごめんね、今日は美化委員会の仕事があるんだ。」 CSS「えー?今日委員会だったっけ?あの偉そうな堅物とすることなんてある?」 TS「偉そうなって...(苦笑)、うーん、まぁ、ちょっとね。埋め合わせに今度新しいライブラリ紹介するから!」 CSS「しょうがないなぁ」 魅力的な誘いを断ってしまった私は、足早に隣のクラスの彼女の元へと向かった。 TS「ふふふ...今日はとっておきのネタがあるからね...」 美化委員会の仕事があるというのは、半分当で半

    Rustにはシャローコピーがわからない - Qiita
    zyzy
    zyzy 2023/04/25
    途中でHaskellちゃんが変な事になって出てくるけど、超能力でRustちゃんのやりたい事読み取って動いてるとしか思えん挙動。
  • CでもC++でもなく「Rust」を使いたくなる“なるほどの理由”

    関連キーワード アプリケーション開発 | プログラマー | プログラミング 独立性の高い小規模サービス「マイクロサービス」の開発において、プログラミング言語「Rust」は一定の地位を築いている。Rustにはどのような強みがあるのか。 CやC++じゃなく「Rust」を選ぶ理由はこれだ 併せて読みたいお薦め記事 連載:GoRustを比較する 第1回:CでもC++でもなくプログラミング言語「Go」を使いたくなる“あの良さ”とは? 第2回:「Go」に期待し過ぎたプログラマーが落胆する“完璧じゃない部分” GoRustの魅力 プログラミング言語「Go」の魅力とは? 「Goで“脱COBOL”」の成功者が語る 「Rust」はなぜクラウドネイティブ開発者の間で大人気なのか? 「C」や「C++」といったプログラミング言語では、開発者は手動でメモリを管理する必要があるが、Rustはその必要はない。これはプ

    CでもC++でもなく「Rust」を使いたくなる“なるほどの理由”
    zyzy
    zyzy 2023/04/23
    ↓CはともかくC++を作る難易度とRustやGoを作る難易度はそんなに変わらないと思います。Cはぶっちぎりで簡易ですけど。
  • Elixir and Rust is a good mix

    Elixir and Rust is a good mix Author Name Jason Stiebs @peregrine @peregrine Image by Annie Ruygt This post is about using Rust with Elixir and how easily it can be done! If you want to deploy your Phoenix LiveView app right now, then check out how to get started. You could be up and running in minutes. Problem We need to perform a CPU intensive or system level programming task and there are just

    Elixir and Rust is a good mix
    zyzy
    zyzy 2023/04/14
    Elixirまだまだ好きな人多い
  • RustとWASMで開発されKubernetesで実装されたデータストリームシステムFluvioを紹介

    Cloud Native Computing Foundation(CNCF)が公開しているYouTubeチャネルから、Kafkaに替わるストリーミングプロセッシングを行うオープンソースソフトウェアFluvioを解説する動画を紹介する。CNCFはクラウドネイティブなシステムを普及するためのマーケティング活動の一環としてクラウドネイティブなソフトウェアを解説する動画を公開しているが、これもそのひとつだ。Fluvioを開発しているのはInfinyOnという企業で、元NGINXエンジニアが創業したベンチャーだ。Fluvio自体はオープンソースだが、CNCFのサンドボックスプロジェクトという訳でもない。CNCFにはTremorやStrimziというストリーミングのためのソフトウェアがすでにサンドボックスとして採用されているが、そういった枠には捕らわれずに紹介をするという発想だろう。 動画:Int

    RustとWASMで開発されKubernetesで実装されたデータストリームシステムFluvioを紹介
    zyzy
    zyzy 2023/03/20
    Scalaの範疇がRustに移行してきてるな、と思う。
  • Rustでsafeな連結リストをつくる試み

    前回の記事を書いてから、考えてるだけじゃだめだなとすこし書いてみたところいろいろわかった。 Rcによるリスト Rcはリファレンスカウントで管理できる。RcはWeakをつくれるので、たとえばnext方向にRcをつなげておき(先頭ノードはリスト体が保持)、prev方向へはWeakを持たせればいいのではないか? と考えてみたのだった。 やってみたところこの方針では書けないということがわかった。Rcの参照先は基的には更新ができない。ノードを追加したらprevやnextを書き換えないといけないけど、書き換えができない。書き換えをするには mutable なリファレンスを一時的に獲得する必要があるが、weakも含めたリファレンスカウンタが1でないといけない(これは安全性のためだろう)。prevとnextで基的にノードにはstrongが1つとweakが1つ常にあるので、mutableなリファレンス

    Rustでsafeな連結リストをつくる試み
    zyzy
    zyzy 2023/03/10
    rustの連結リスト定期的に話題になるなコレ
  • Announcing Rust 1.68.0 | Rust Blog

    The Rust team is happy to announce a new version of Rust, 1.68.0. Rust is a programming language empowering everyone to build reliable and efficient software. If you have a previous version of Rust installed via rustup, you can get 1.68.0 with: $ rustup update stable If you don't have it already, you can get rustup from the appropriate page on our website, and check out the detailed release notes

    Announcing Rust 1.68.0 | Rust Blog
    zyzy
    zyzy 2023/03/10
    pinマクロの方はあんまり使うところないかな?
  • Rust vs. Haskell

    Rust and Haskell don’t shy away from powerful features. As a result, both languages have steep learning curves when compared with other languages. Trying to learn Rust or Haskell can be frustrating, especially in the first couple of months. But if you already know Rust, you have a head start with Haskell; and vice versa. In this article, we want to show how knowledge of one of these languages can

    Rust vs. Haskell
    zyzy
    zyzy 2023/02/15
    高階型周りがもうちょっとガッツリ入ればなぁ(GATsで大分行ける感じには成った)というのと、演算子の定義をもうちょっと好きにさせてほしいのはずっと思ってるRust。ghcはエラーメッセージよくなったん?
  • Rust の嬉しさをより多くの日本語話者に知ってもらうためには、スタンフォードで強く敷かれている educational benefit の概念を Rust コミュニティが抱くことが大事なのではないか、という私見

    Rui Ueyama @rui314 スタンフォードの授業で「え、ここまでそれわかってなくて聞いてたの?」という質問をしてる生徒はかなりいたし、教える方は驚くこともなく普通にそういう基的な質問に答えていたので、ああいうのは見習いたい(どちら側も)。 Rui Ueyama @rui314 こういうの、難しい問題とかではなくて当に簡単なやつで、逆に具体的な例を思い出せないけど、例えば集合論で「∅と書いてあるのは数字の0ってこと?」みたいな。ここまで何十分も空集合がわからずに聞いてたのか〜みたいな。

    Rust の嬉しさをより多くの日本語話者に知ってもらうためには、スタンフォードで強く敷かれている educational benefit の概念を Rust コミュニティが抱くことが大事なのではないか、という私見
    zyzy
    zyzy 2023/02/13
    コンパイルエラーをはいてもらえるツールを使いこなせるというのは、時々コンパイルエラー吐いてもらうって事なんだから、そこに卑屈にならないでいいはずなんだよね。
  • 「Rust Atomics and Locks」を読んだ

    Rust Atomics and Locks」を読んだ #2023-02-05 発売前からすごく楽しみにしていたで、発売日に買って年末から一生懸命読んでいた。 今なら以下から無料で読める。 https://marabos.nl/atomics/ 内容としては求めるものが分かりやすく書かれており、すでに2023 年に読んで良かったの1つに入りそう。 目次書籍を通して得たかった知識 #例えば以下のようなコードを書いた際に、println!でどのような数値のペアが表示されるのか。結論から書くと0 0,10 20といった値がまずは思い浮かぶと思うが、0 20というペアで表示される可能性もあるとされており、その際以下のような疑問・不明点があった。 0 20と表示になるのはどのような条件で何が起こった場合なのか強いメモリモデルとされるx86でも0 20というペアは発生するのかケースにおいてx8

    「Rust Atomics and Locks」を読んだ
    zyzy
    zyzy 2023/02/12
    3→1→2→4だと0,20になるのであって、10,0になるのは1→3→4→2の場合じゃない? って考えてしまって上手く呑み込めない
  • Rust Atomics and Locksの紹介とAtomicを自分なりに整理する

    はじめに Rust Atomics and Locksというが素晴らしかったので、この記事ではそのの紹介と、Atomicに関する私なりの理解を記述していこうと思います。 Rust Atomics and Locksについて このRustの並行処理関連の機能(Scoped Threads, Atomics, 内部可変性, 排他参照と共有参照, SendとSync, Lock, Thread Parking等)を紹介したあと、それらの機能を使ってSpin Lock, Channel, Arc, Mutex, Condition Variable, RWLockなどをstep by stepで作っていくという構成になっています。なのでこのを読むとArcやMutexなどがRustでどうやって実装されているのかなんとなく分かるようになります。私はこのを読むまではRustの並行処理よく分か

    Rust Atomics and Locksの紹介とAtomicを自分なりに整理する
    zyzy
    zyzy 2023/02/10
    非同期回りの奴。読まんといかんか/並行処理なら3→(1→2)→4の順で進む事もありそうだし、ないだろとは思わなかったかな
  • Rust製高速データフレームライブラリ、Polarsを試す | gihyo.jp

    門脇@satoru_kadowakiです。今月のPython Monthly Topicsでは、Rust製の高速データフレームライブラリ Polars について紹介します。 Polarsとは Pythonデータ分析に使用される主なライブラリに pandas があります。Polarsはpandasと同様にデータフレームというデータ構造オブジェクトを提供するサードパーティライブラリです。特にpandasを意識して作られており、メインページに「Lightning-fast DataFrame library for Rust and Python」とあるように、Rustによる高速処理を謳っています。 Polarsのリポジトリや関連ドキュメントは以下を参照してください。 Github: https://github.com/pola-rs/polars ユーザーガイド: https://pola

    Rust製高速データフレームライブラリ、Polarsを試す | gihyo.jp
    zyzy
    zyzy 2023/02/10
    自腹でcsv読むツール作っちゃって、もうちょっと前に知りたかった奴。流石にExcelへの書き出しは無理か……。まぁそれは別の奴でやれって話だわな