Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

タグ

Rustに関するiwwのブックマーク (23)

  • Rustの誤解と改善

    ChatGPT にこんな要求をしました。 Rust自体は難しい言語ではなく、むしろ単純な機能の組み合わせで豊かな表現力を提供しています。なのに、他言語の複雑な機能をRustで再現しようとして混乱する人が跡を絶たず、いつの間にかRustは難しいという誤解が定着してしまいました。そこで、他言語の考え方をRustに持ち込んで失敗した例をいくつか挙げ、改善案を教えて下さい。 記事は ChatGPT の出力をまとめたものです。 GPT-4o 色々試したのですが、まず2025年2月18日時点のGPT-4oから。 確かに、Rustの設計はシンプルな概念の組み合わせですが、他言語の習慣を持ち込むことで混乱が生じることが多いですね。いくつか典型的な失敗例を挙げ、それぞれの改善案を考えてみましょう。 よろしくお願いします。 クラスベースのオブジェクト指向をそのままRustに適用しようとする 失敗例: C++

    Rustの誤解と改善
  • The Rust Book

    The Rust Programming Language by Steve Klabnik and Carol Nichols, with contributions from the Rust Community This version of the text assumes you’re using Rust 1.81.0 (released 2024-09-04) or later. See the “Installation” section of Chapter 1 to install or update Rust. The HTML format is available online at https://doc.rust-lang.org/stable/book/ and offline with installations of Rust made with rus

    iww
    iww 2025/02/24
    フル英語はしんどい
  • 『詳解Rustアトミック操作とロック』(Rust Atomics and Locks) - Don't Repeat Yourself

    昨年買っていたんですが、年末年始の時間を使って少し読めました。 著者はRustコンパイラにコントリビューションをしたことがあれば誰でも知っているかもしれない、Mara Bos氏です。 ちなみにですが、原著は下記サイトで無料でも読むことができます。 marabos.nl 書籍は下記です。 詳解 Rustアトミック操作とロック ―並行処理実装のための低レイヤプログラミング 作者:Mara Bosオーム社Amazon なおこの記事内で「書」と明記する場合、それは『詳解Rustアトミック操作とロック』を指します。また、「筆者」は私自身のことであり、「著者」はMara Bos氏のことです。 内容のメモ 1章 2章 3章 4章、5章 6章 Miri Loom 7章 8章 9章 10章 感想 日語での別の資料 内容のメモ 読んだ内容のうち、印象に残ったり初見だったものをメモしておきます。 1章 1章

    『詳解Rustアトミック操作とロック』(Rust Atomics and Locks) - Don't Repeat Yourself
    iww
    iww 2024/01/09
    「"ロック"を書くだけでこの厚み?」 みたいな感想を持った
  • eguiで作るRustのGUI(基本的な使い方と日本語表示)

    RustGUI クレートは全体的にまだまだ発展途上で決定版がない状況ではあるものの、 egui が良い感じに進歩しているので、基的な使い方を書いてみる。 egui の概要と特徴 egui は書き方も見た目も使い勝手も独特なGUIライブラリ。名前の読み方は「エグーイ」だと思う。Emil氏がやっているので。 特徴を知るためにはとりあえずWebブラウザで動くサンプルを触ってみるのが良い。 とにかくクセがすごい。ウィンドウ内のウィンドウなんて今日日見かけないものが普通に存在している。 でも豊富なウィジェットがあるので、それなりに使えそうな感触もあるかとも思う。 egui の特徴をざっくりと列挙してみると、以下のような感じ。 動作もビルドも速い。 色々な環境で動く。上記サンプルみたいにWASMでも動く。 即時モードを採用している。(詳細は後述) ネイティブのような見た目や、複雑なレイアウトは

    eguiで作るRustのGUI(基本的な使い方と日本語表示)
  • Rustの実行速度が速い理由 - Qiita

    目的 Rustの実行速度が速い理由を知る。 まとめ ①直接機械語にコンパイルされる。 ②ゼロコスト抽象化 ③GCがない 様々なアルゴリズムでの速度比較 左からC++Rust、C 数値が低いほど早い。RustはC,C++と同程度に速いとされている。 Rustのコンパイラ Rustのコンパイル RustはC、C++同様に直接機械語を生成している。Rustのコンパイラは機械語生成にLLVMを使用している。 Rustについて pythonは実行時にバイトコード(中間コード)を生成し、仮想マシンPVM(python virtual machine)で実行するため遅い。 参考 アセンブラの確認 cargo rustc --release -- --emit asm で最適化されたアセンブラを出力可能。 \target\release\depsに.sファイルが作成される。 ゼロコスト抽象化 抽象化のコ

    Rustの実行速度が速い理由 - Qiita
  • Rust環境構築: Visual C++ Build Toolsを使わずにCygwinのC++環境を使う - Qiita

    通常, WindowsRustをインストールすると, Visual C++ Build Toolsのインストールを求められる. C++環境をCygwinで既に持っているユーザーは, Visual C++ Build Toolsをインストールしたくない. ここではその回避方法を示す. 前提 gcc-core, gcc-g++, gdb, makeは既にCygwinで導入済みとする. 私のCygwinインストールメモはこちら. Rustの環境構築 ダウンロード 通常のインストーラーの場所ではなく, こちらからx86_64-pc-windows-gnuのrustup-init.exeをダウンロードする. インストール インストーラーの実行 C++のビルドツールが必要と言われますが, 既にCygwinで持っているためそのまま進めます. インストールオプションが出るため, 修正する必要があります.

    Rust環境構築: Visual C++ Build Toolsを使わずにCygwinのC++環境を使う - Qiita
  • RustをWindows 10 (Cygwin)で試してみた話 - HRR Co., Ltd.

    はじめに 最近はすっかりWeb系スクリプト言語しか触らなくなってしまいました。 たまには毛色の異なる言語を使いたいと思い、Rustに手を出してみました。 Windows 10でCygwinを使った環境構築と、「Hello, World」までをやります。 参考URL: rustup.rs - The Rust toolchain installer プログラミング言語Rust 手順 Rustのインストール 下記に書いてある通りではあるんですが…細かく見ていきます。 rustup.rs doc.rust-jp.rs Windowsの場合はexeをダウンロードして実行するのが普通のようですが、 If you're a Windows Subsystem for Linux user run the following in your terminal, then follow the onscr

    RustをWindows 10 (Cygwin)で試してみた話 - HRR Co., Ltd.
  • RustとC++のジェネリクスの性格の差 - in neuro

    今までRustは使いまわすことのない適当なスクリプト的にしか使ってこなかったので、実際のところ質的に難しいことは何もしてこなかった。その間は非常に楽で、言われるほど難しくないのではと思っていた。が、最近コードを使いまわそうと思って書き始めたところ、即死してしまった。 例えば、ジェネリックな構造体を作ろう。名前と座標を持つ質点ということにしよう。すると、名前は文字列でいいとして、座標にはf64やf32のどちらも使い得るし、そもそも座標の値は特定の型に結びついたものではない。なのでジェネリクスを使うのが妥当だ。なので以下のようなコードを書き始める。 #[derive(Debug)] pub struct Particle<T> { pub name : std::string::String, pub pos : nalgebra::Vector3<T>, } fn main() { let

    RustとC++のジェネリクスの性格の差 - in neuro
  • ESP32 + RustでHello world - Qiita

    3行まとめ RustでもESP32のファームウェアを開発できる。 LLVM、clang、rustcのコンパイルはなかなか大変。(時間的な意味で) 組み込みRustに未来を感じる。 1. 概要 技術書典7で頒布されていた『M5Stackで始める組み込みRust』という技術同人誌を読みました。 以前よりマイコンを使った電子工作を行っており、組み込み領域でもRustを使ってみたいと思っていましたが、それなりに環境が整ったみたいなので試してみることにしました。 結論から言えば、無事にRustからシリアルコンソールに「Hello world!」の文字を出力することができました。 2. 環境 検証に用いた環境は以下の通りです。 OS: macOS Mojave 10.14.6 (18G103) Docker CE: 19.03.2 llvm-xtensa: 757e18f722dbdcd98b8479

    ESP32 + RustでHello world - Qiita
    iww
    iww 2023/05/17
  • 米国家安全保障局、CやC++からメモリー安全性の高いJavaなどへの移行を推奨

    印刷する メールで送る テキスト HTML 電子書籍 PDF ダウンロード テキスト 電子書籍 PDF クリップした記事をMyページから読むことができます 米国家安全保障局(NSA)は米国時間11月10日、ソフトウェアのメモリー安全性強化に向けたガイダンスを公開した。同機関はその中で開発者らに対して、ハッカーらによるリモートコード実行(RCE)をはじめとするさまざまな攻撃からコードを保護するために、C#やGoJavaRubySwiftRustといったメモリー安全性の高い言語に移行するよう推奨している。 これらの言語の中では、Javaが企業向けアプリや「Android」アプリの開発で最も幅広く使用されている一方、Swiftは「iOS」アプリの開発環境に取り込まれている点もあって人気プログラミング言語の上位に入っている。また、RustはシステムプログラミングにおいてCやC++の代替とし

    米国家安全保障局、CやC++からメモリー安全性の高いJavaなどへの移行を推奨
    iww
    iww 2022/11/14
    つまりCやC++がチョットデキルRustプログラマーがこれからどんどん稼げる時代になるのかな
  • Rustプログラミング言語

    パフォーマンス Rustは非常に高速でメモリ効率が高くランタイムやガベージコレクタがないため、パフォーマンス重視のサービスを実装できますし、組込み機器上で実行したり他の言語との調和も簡単にできます。 信頼性 Rustの豊かな型システムと所有権モデルによりメモリ安全性とスレッド安全性が保証されます。さらに様々な種類のバグをコンパイル時に排除することが可能です。 生産性 Rustには優れたドキュメント、有用なエラーメッセージを備えた使いやすいコンパイラ、および統合されたパッケージマネージャとビルドツール、多数のエディタに対応するスマートな自動補完と型検査機能、自動フォーマッタといった一流のツール群が数多く揃っています。

    Rustプログラミング言語
    iww
    iww 2022/09/28
    『Rustコミュニティは、いくつかの異なる領域におけるプログラミング体験を改善していくと決めました』 決めたんだ。 がんばれ
  • 「Linux」、バージョン6.1でRustを導入へ--トーバルズ氏が明言

    LinuxRustを導入するかどうかという議論は終わりを迎えた。Rustの実装は既に始まっている。Linuxの父であるLinus Torvalds氏は電子メールによる筆者との対話の中で「何かおかしなことが発生しない限り、それ(Rust)は6.1で導入される」と述べた。 Linuxカーネルの記述言語としてプログラミング言語Rustを導入するという議論は、かなり前から存在していた。Linuxカーネルの開発者らは、年次カンファレンス「Linux Plumbers Conference(LPC)2020」の場で、Linuxの新たなインラインコードでのRustの使用について検討を開始していた。また、「Android」(それ自体がLinuxのディストリビューションだ)の開発言語としてRustを支持しているGoogleは、2021年4月にLinuxカーネルへのRust導入の動きを後押しし始めていた。

    「Linux」、バージョン6.1でRustを導入へ--トーバルズ氏が明言
    iww
    iww 2022/09/20
    とうとうRustを勉強しなければならない時期が来たか・・・ 仕方ないな
  • Rustでzipファイルを作成したい

    1fn doit() -> zip::result::ZipResult<()> 2{ 3 use std::io::Write; 4 5 // For this example we write to a buffer, but normally you should use a File 6 let mut buf: &mut [u8] = &mut [0u8; 65536]; 7 let mut w = std::io::Cursor::new(buf); 8 let mut zip = zip::ZipWriter::new(w); 9 10 let options = zip::write::FileOptions::default().compression_method(zip::CompressionMethod::Stored); 11 zip.start_file("h

    Rustでzipファイルを作成したい
  • Rustに移行する理由の大部分は、C++11以降の更新とガイドライン順守で消えますか?まあ、CargoこそC++にほしかったもののひとつでしょうけど。

    回答 (3件中の1件目) その通りですね。あとは言語の機能として標準でユニットテストがあるのもC++に対するメリットの一つです。 ちなみにCargoは以下の複数の機能を統合しています。 1. ライブラリ管理 2. ビルダー 3. タスクランナー このうち2,3はC++ではCMakeを利用すればほぼ同等のことができますが、如何せんCMake自体の仕様がまた大きすぎて初見では結構ハードルが高いですね。1はC++はいろいろ乱立していますが決定的なものは無いですね。私はもうgit submoduleで管理しています。ユニットテストについてはCatch2 [1]という素晴らしいフレームワークが...

    Rustに移行する理由の大部分は、C++11以降の更新とガイドライン順守で消えますか?まあ、CargoこそC++にほしかったもののひとつでしょうけど。
  • Rustは難しい言語ではない。気軽に始めてみるところからスタートしよう。Rust活用企業の現場に聞いてみた - Findy Engineer Lab

    2021年8月に約1000名のエンジニアに対し「今後、習得・強化したいプログラミング言語」と題してアンケートを実施したところ、多くのエンジニアが今後習得したい言語はRustであると判明しました。 Rustに関する知見を深めるため、2021年9月7日(火)には「最新バックエンド井戸端会議vol.2」と題し、オンラインイベントを開催。『実践Rustプログラミング入門』の著者である吉川さんと松さんをお招きし、お話を伺いました。 稿では、イベント内で語られたRustを導入するポイントや、エンジニア採用のコツについて一部抜粋してまとめています。 Rustに関心のある方や技術選定を任されている方は、ぜひご一読くださいね! Rustを導入するのに重要なこととは? 現状ではRustエンジニアの採用難易度は高い Q&Aセッション Rustを広めるためには、まずは自分がやってみる Rustは難しい言語では

    Rustは難しい言語ではない。気軽に始めてみるところからスタートしよう。Rust活用企業の現場に聞いてみた - Findy Engineer Lab
    iww
    iww 2021/10/24
    ジェネリクスを駆使する言語嫌い
  • Rustで、Hello Worldを卒業した?次は、gRPCだよね!

    こんにちは、NTTの藤田です。 Rustには公式なgRPCサポートがありません。gRPCAPIがないなら、何も実装する気になりません、クラウドネイティブ時代ですからね。公式なgRPCサポートがない代わりに、4種類も非公式な実装がありますので、安心です。安定性や、コミュニティの活発度など、様々な比較の観点がありますが、今回は、Rustへの信仰の強さ、という観点で比較しました。 Rustには公式なgRPCサポートがない信仰の強さの評価軸他言語への依存度Rust以外は言語にあらず。他言語の存在を許容するようでは、信仰が強いとはいえません。全てをRustで再実装するべきです。 最新の非同期処理への対応今、Rust界の大きな話題といえば、11月のasync/awaitを利用した非同期処理を実現するためのFuture APIの安定化です。古い異端のコードを捨て、迅速に、定められた、正統な非同期処理の

    Rustで、Hello Worldを卒業した?次は、gRPCだよね!
    iww
    iww 2021/06/25
    『他言語との互換性がなくなるケースがある?Rust以外は言語にあらずです。』
  • RustでSQLを発行してみる

    RustSQLを発行してみます。 RustSQLというとDieselばかりが検索に引っかかります。Dieselのように事前のセットアップをしたくない場合とか、すでにデータソースの用意がある場合等、SQLを直接書きたいシーンというのも少なくないと思うのですが、この例があまり出てきません。 SQLを直接記述、発行する場合、r2d2_mysqlというCrateを使います。リポジトリやライブラリの紹介ページは以下のとおりです。 Crates.io r2d2_mysql GitHub outersky/r2d2-mysql ここでひとつ、注意しなければならないことがあります。それぞれのページからリンクされているドキュメントが古いのです。Crates.ioからリンクされているドキュメントはv0.2.0、GitHubからリンクされているドキュメントはv3.0.0となっています。ところが、現在公開され

  • まえがき - The Rust Programming Language 日本語版

    まえがき すぐにはわかりにくいかもしれませんが、Rustプログラミング言語は、エンパワーメント(empowerment)を根原理としています: どんな種類のコードを現在書いているにせよ、Rustは幅広い領域で以前よりも遠くへ到達し、 自信を持ってプログラムを組む力を与え(empower)ます。 一例を挙げると、メモリ管理やデータ表現、並行性などの低レベルな詳細を扱う「システムレベル」のプログラミングがあります。 伝統的にこの分野は難解で、年月をかけてやっかいな落とし穴を回避する術を習得した選ばれし者にだけ可能と見なされています。 そのように鍛錬を積んだ者でさえ注意が必要で、さもないと書いたコードがクラッキングの糸口になったりクラッシュやデータ破損を引き起こしかねないのです。 この難しさを取り除くために、Rustは、古い落とし穴を排除し、その過程で使いやすく役に立つ洗練された一連のツールを

    iww
    iww 2021/06/25
    『気まぐれなツールチェーンのデリケートな部分を学ぶ必要なく』 pythonとかはここがスーパーうんこだったわけだし、それが無いのなら勉強しようかな
  • Rust in the Linux kernel

    The latest news and insights from Google on security and safety on the Internet

    Rust in the Linux kernel
    iww
    iww 2021/04/15
    Rustでドライバとか書けるんだ。 すごいなぁ
  • 'It's really hard to find maintainers...' Linus Torvalds ponders the future of Linux

    Will code move on to a language such as Rust? 'I'm convinced it's going to happen' says kernel colonel Linux creator Linus Torvalds spoke about the challenge of finding future maintainers for the open-source kernel, at the Open Source Summit and Embedded Linux conference under way this week online. Torvalds does not do keynote talks these days, but he was willing to sit down with VMware's chief op

    'It's really hard to find maintainers...' Linus Torvalds ponders the future of Linux