並び順

ブックマーク数

期間指定

  • から
  • まで

361 - 400 件 / 2902件

新着順 人気順

rustの検索結果361 - 400 件 / 2902件

  • GitHub - AppFlowy-IO/AppFlowy: AppFlowy is an open-source alternative to Notion. You are in charge of your data and customizations. Built with Flutter and 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

      GitHub - AppFlowy-IO/AppFlowy: AppFlowy is an open-source alternative to Notion. You are in charge of your data and customizations. Built with Flutter and Rust.
    • C++からRustに移行して幸せになる人、そうならない人 その違いは?

      C++はRustが登場する前から成熟度の高い言語だった。開発者はC++からRustに切り替える必要があるのだろうか。必ずしもそうとは限らない。C++とRustの品質、両言語の相違点と類似点を調べて、どちらのプログラミング言語を選ぶかを決めたい。 C++はRustが登場する前から成熟度の高い言語だった。開発者はC++からRustに切り替える必要があるのだろうか。必ずしもそうとは限らない。 新たなプロジェクトに携わるプログラマーは、プログラミング言語の選択肢が不足することはない。プログラミング言語「C++」と「Rust」は、 ブラウザベースのソフトウェアからビデオゲームに至るまで、さまざまなプロジェクトに適しており、それぞれに利点がある。 C++は効率的で信頼性の高いプログラミング言語だ。信頼性、パフォーマンス、スケーラビリティの高さから開発者はC++を選ぶ。C++の標準テンプレートライブラリ

        C++からRustに移行して幸せになる人、そうならない人 その違いは?
      • 「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」を読んだ
        • Rust Advent Calendar 2019 1日目 Rust の非同期プログラミングモデルはランタイム観点だと Go のそれに似ている - keno_ssの日記

          この記事は Rust Advent Calendar 2019 の1日目の記事になります. 明日は topecongiro さんの予定です. TL;DR 去る 11/07 に Rust 1.39.0 がリリースされました. これはユーザー待望の async/await 構文が言語機能として取り込まれた安定版リリースとなります. Advent Calendar 最初の記事としては取り上げないわけにはいきません. もう既に他の良い記事がたくさん書かれていますが, この記事ではそれらを補完する視点から説明してみようと思います. Rust と非同期 IO の歴史 κeenのHappy Hacκing Blog -- async/awaitと合成可能性 async/await の実装と利便性のバランスの良さについて. κeenのHappy Hacκing Blog -- RustのFutureとその

            Rust Advent Calendar 2019 1日目 Rust の非同期プログラミングモデルはランタイム観点だと Go のそれに似ている - keno_ssの日記
          • なぜわざわざ学習コストを払ってまでRustを採用するのか? Webエンジニア目線でRustを考察

            なぜわざわざ学習コストを払ってまでRustを採用するのか? Webエンジニア目線でRustを考察:WebエンジニアからみたRust(1) Web開発者としての興味、関心に基づきRustを端的に紹介し、その強みや弱みについて理解を深める本連載。第1回では、Rustを採用するモチベーションとは何かを整理、考察します。 Rustへの関心の高まり 近年、プログラミング言語「Rust」に関する重要なニュースを多く見るようになりました。例えば以下のような記事です。 Androidの開発へ「Rust」を導入、なぜなのか Microsoft、「Rust for Windows v0.9」を公開 実装言語を「Go」から「Rust」に変更、ゲーマー向けチャットアプリ「Discord」の課題とは これらの記事が指し示すことは、いわゆる「GAFAM」(Google、Amazon.com、Facebook、Appl

              なぜわざわざ学習コストを払ってまでRustを採用するのか? Webエンジニア目線でRustを考察
            • 詳解 Rustアトミック操作とロック

              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アトミック操作とロック
              • 世界のプログラミング言語(20) 「WebAssembly」ならブラウザで高速にCもRustもGoも動く

                今回紹介するのは、WebAssemblyです。これは、その名の通りWebブラウザ上で動かせるアセンブリ風の言語です。既に、C/C++言語、RustやGo言語などのプログラミング言語がWebAssemblyに対応しています。また、主要Webブラウザではサポートされており、JavaScriptよりも高速に実行できるため、ブラウザの可能性が大きく広がっています。今回は、WebAssemblyについて、また、実際にブラウザで実行する方法を紹介します。 Go言語でWebAssemblyを出力して実行したところ ブラウザにはJavaScriptがあるのになぜ? WebAssemblyはWebブラウザ上で動作する言語です。しかし、Webブラウザ上で動作する言語には、既にJavaScriptがあります。モダンブラウザであれば、どのブラウザを使っても同じようにJavaScriptのプログラムを動かすことがで

                  世界のプログラミング言語(20) 「WebAssembly」ならブラウザで高速にCもRustもGoも動く
                • 趣味Rustから業務Rustへ

                  こんにちは!プロダクト開発部の熊谷です。 Fairy Devices(フェアリーデバイセズ) の 入社エントリ を書きます!! 背景 私が Rust に出会ったのが2019年。それまでは C, C# をよく書いていましたが、 Rust の型システムやメモリ安全性、パフォーマンスに魅了され、ますます没頭していきました。 当時学生だったわけですが、新卒時は Rust にこだわらず仕事の安定性を求めて、 SIer 業界に就職しました。 そこで働きつつ、こんなことを思っていました 業務でも Rust を書きたい! 自社製品を開発したい! 5000兆円欲しい! 業務経験も乏しい上に Rust の求人はまだ少なく狭き門になると考え、個人開発や勉強会への参加など頑張っていました。 そんなとき、 Rust.Tokyo で当社の存在を知り、入社に至りました。 何をやっているか mimi®クラウドAI のサー

                    趣味Rustから業務Rustへ
                  • RustでWasm Runtimeを実装してみた

                    はじめに 最近Wasmの勢いがすごくて、ブラウザでPostgreSQLを動かせたり、DockerでWasmを動かせたりできます。 以前からWasm自体に興味があって、動作原理を知りたいと思ってchibiwasmというRuntimeを実装してみました。 Rustを選んだのは、最近Rustを勉強していてそれに慣れるためです。 苦労しましたが、*.wasmがどのようにして実行されるのかを理解できたので良かったです。 今回はWasmのバージョン1の仕様を満たすように実装して、テストスイートは正常系と実行時異常系のテストは通しましたが、バリデーションなどのテストはスキップしています。 また、少しだけバージョン2の命令とWASIを実装していて、RustからビルドしたHello Worldを標準出力するwasmバイナリも動きます。 本記事は実装したWasm Runtimeの概要と、実装を通して学んだこと

                      RustでWasm Runtimeを実装してみた
                    • Rustの知見を深めたい! 開発合宿でmackerel-agentを再実装してみた - Hatena Developer Blog

                      はてなには、開発合宿というイベントがあります。有志で集ったメンバーが普段の開発から離れ、テーマを決めて集中して取り組むイベントです。 今回、私(id:dekokun)、id:Krouton、id:ne-sachirouの3人からなるチームで、はてなが提供するサーバー管理・監視サービスMackerelに必須であるmackerel-agentというプログラムを題材に、Rustでの再実装を試みました。 mackerel-agentは、監視対象のホストにインストールし、ホストの情報(メトリックやメタデータ)を集めてMackerelに送るプログラムで、Go言語で実装されています。なお、今回はあくまでRustの知見を得る材料として選択したもので、今後の実装を置き換えようとしているわけではありません。 Rustでmackerel-agentを再実装する狙い なぜRustなのか なぜmackerel-ag

                        Rustの知見を深めたい! 開発合宿でmackerel-agentを再実装してみた - Hatena Developer Blog
                      • エッジMLシステムを C/C++からRustへ移行した事例 (@_tkato_ at DeNA, Rust.Tokyo 2019)

                        エッジMLシステムを C/C++からRustへ移行した事例 2019/10/26 Rust.Tokyo 2019 加藤倫弘 / Tomohiro KATO AI本部AIシステム部AI研究開発第二グループ 株式会社ディー・エヌ・エー 1

                          エッジMLシステムを C/C++からRustへ移行した事例 (@_tkato_ at DeNA, Rust.Tokyo 2019)
                        • トレイトの実体を捉えれば、Rustへの恐怖は少し減る コンパイルエラーの対処で理解できた言語のコンセプト

                          キャディ株式会社が主催した「Rust完全に理解した(嘘)」。バックエンドエンジニアたちが Rustを習得するまでの苦労や、使ってみたうえでの技術的なメリット・デメリット・課題などについて話しました。ここで登壇したのは、冨田陽介氏。Rustの抽象化プログラミングにおいて発生したコンパイルエラーの対処について発表しました。 自己紹介 冨田陽介氏:私は「コンセプトから理解したいRust(願望)」について紹介したいと思います。 (スライドを示して)自己紹介はザッと流しますが、1つだけ伝えたいことがあるとすると、私自身はこんな感じで、これまでのキャリアから少し離れている領域でRustに携わっているので、自分がチャレンジしたいと言うと、その領域を任せてもらえる会社であるかなと思います。 もしも「キャディという会社に興味があるけれど、Rustをやったことないしなぁ」という感じで迷っている方がいたら、ぜひ

                            トレイトの実体を捉えれば、Rustへの恐怖は少し減る コンパイルエラーの対処で理解できた言語のコンセプト
                          • GitHub - microsoft/windows-rs: Rust for Windows

                            The windows and windows-sys crates let you call any Windows API past, present, and future using code generated on the fly directly from the metadata describing the API and right into your Rust package where you can call them as if they were just another Rust module. The Rust language projection follows in the tradition established by C++/WinRT of building language projections for Windows using sta

                              GitHub - microsoft/windows-rs: Rust for Windows
                            • Rustの日本語書籍紹介 - Qiita

                              はじめに この記事はRust Advent Calendar 2020の3日目です。 今年の春から夏にかけて、「実践Rustプログラミング入門」という本を書いていました。お陰さまで売上好調のようでありがとうございます。(ちなみにちょうど昨日、電子書籍版も出ました) この本を書くにあたって、すでにいくつかRustの日本語書籍があるなか新しい本を出すということで、既刊との差別化をどう図るかは考えないといけないと思っていました。その時にRust本を一通り読み直したので、それぞれどのような本であるかを簡単にまとめておこうと思います。 基本的な書誌情報に加え、Rustコンパイラのバージョンとエディション、内容のざっくりとした方向性(実践よりか文法解説よりか、といったような)を書いていきます。いくつかの本にはよく使われる呼び名があるのでそちらも書いておきました。 Rustはいろいろなプログラミング言語

                                Rustの日本語書籍紹介 - Qiita
                              • YJITで使ったRustの省メモリ化テクニック - Qiita

                                これは Rust Advent Calendar 2022 のカレンダー2の22日目の記事です。 YJITとは 私は今年の7月からShopifyという会社でRubyのJITコンパイラであるYJITを開発している。このJITは今年CからRustに書き直されたため、現職では業務としてフルタイムでRustを書いている。 実用段階になったYJIT おそらく世界最大規模でRubyを使っている弊社では、お客様のお店のサイトをレンダリングするアプリには社内最大のトラフィックが来ていて、実は最近そのアプリほぼ全台で最新のYJITが有効化されたことが昨日公開情報になった。あまりにも大量のトラフィックが来るので、YJITによって行なわれているRubyコード実行量はYJITが使われてないものよりも世界全体で見て多くなったのではないかとCEOが言っていた。 この規模のトラフィックを捌くためにこのアプリは比較的よく

                                  YJITで使ったRustの省メモリ化テクニック - Qiita
                                • 『Rust Design Patterns』を翻訳してみました(Idiom 編) - Qiita

                                  はじめに rust-unofficialというところの出しているRust Design Patternsの日本語訳が見つからなかったため、理解のために翻訳してみました(分からないところは DeepL に頼りました)。 今回は Introduction と Idioms の部分です(デザインパターン・アンチパターン編の翻訳はこちらにあります)。 FFI の部分はよく分からなかったためスキップしています。 不慣れなため翻訳間違いなどある可能性が高いです(教えていただきたいです)。 以下から本文です。 Introduction デザインパターン プログラムを開発するとき、私たちは多くの問題を解決しなければなりません。プログラムは問題の解決方法と見ることができます。また、プログラムは多くの異なった問題の解決方法の集まりと見ることもできます。これらの解決方法の全てが一緒に大きな問題の解決へと働きかけ

                                    『Rust Design Patterns』を翻訳してみました(Idiom 編) - Qiita
                                  • Rust + LLVMでプログラミング言語を自作してセルフホスティングした話

                                    llrlは自作のプログラミング言語です。大きな特徴が2つあります。 Hindley-Milnerベースの型推論による静的型付け (+型クラス) Lisp-likeなS式によるシンタックスとLLVM JITによるマクロ この言語の処理系をRustとLLVMを用いて実装し、それをllrl上に移植してセルフホスティングを試みました。無事セルフホスティングを達成したので、取り組んだことやモチベーションなどを順に振り返りたいと思います。 LLVMについては、フロントエンド側・バックエンド側ともに既にいくらかの解説記事が見られるため、概要は省略します。今回は新たなプログラミング言語のバックエンドとしてLLVMを用いるので、LLVMのフロントエンド側の実装がメインとなります。 事の発端: LLVM Kaleidoscopeチュートリアル Kaleidoscopeは、LLVMのチュートリアルにおいて実装す

                                      Rust + LLVMでプログラミング言語を自作してセルフホスティングした話
                                    • 新たなプログラミング言語を習得したい人にオススメ! プログラミング言語「Rust」の基礎をしっかり学べる無料の電子書籍

                                      2015年にバージョン1.0に到達した「Rust」は、比較的新しいプログラミング言語です。2019年には、Microsoftが「Windows」の開発にRustを採用すると発表したり、Googleが「Android 12」の開発から、「C/C++」の代わりにRustを採用したりしたことも記憶に新しいのではないでしょうか。 本eBookでは、連載「基本からしっかり学ぶRust入門」全18回を収録。Rustとはどのような言語なのかに始まり、なぜMicrosoftやGoogleがRustに注目したのか、Rustは他のプログラミング言語とどう違うのか、言語の特徴や、開発環境の構築方法、記述方法まで紹介しています。 本eBookの前半では、Rustの特徴や基本文法を、後半では、Rustを使ったアプリケーションを開発する際のフォルダ構造や、テストの記述方法も紹介しています。各回ともサンプルコードととも

                                        新たなプログラミング言語を習得したい人にオススメ! プログラミング言語「Rust」の基礎をしっかり学べる無料の電子書籍
                                      • Node.jsをRustに書き換えるのはどのくらいかかる? 実験的導入でわかった、メリット・デメリット

                                        ウェブアプリケーションをRustで開発している、株式会社estie。今回開催された「Rust、何もわからない…」では、実サービスで活用されているRustについて、その活用方法の事例を紹介しました。ここで登壇したのは、ソフトウェアエンジニアの松本健太郎氏。アプリケーションのバックエンドをRustに書き換えた事例について発表しました。 バックエンドをRustに書き換えた実例報告 松本健太郎氏:私からは、まさにバックエンドをRustに書き換えるということで、実例報告的なことをやりたいと思っています。よろしくお願いします。 本日は、どういうことをしたかというところと、それをやるにあたっての意思決定。実際にやってみてどういうところが問題になったか。あとは、特にTypeScriptとの連携周り、どういう工夫をしたかをお話しできればと思います。 自己紹介です。松本健太郎と言います。 アプリケーションの概

                                          Node.jsをRustに書き換えるのはどのくらいかかる? 実験的導入でわかった、メリット・デメリット
                                        • Rustでブラウザを操作する「rust-headless-chrome」を試してみた | DevelopersIO

                                          こんにちは。MAD事業部のきんじょーです。 最近Rustの入門書を読んだので、何かに使ってみようと模索していました。 その中で、Rustでヘッドレスブラウザを動かすライブラリを検証したのでこの記事にまとめます。 ヘッドレスブラウザとは ヘッドレスブラウザはGUIを持たないWebブラウザです。 一般的なブラウザと同じく、HTMLを解析しJavaScriptを実行できますが、GUIを持たないため、CLIやプログラム上から操作を行います。 主に以下のような用途で用いられます。 WebアプリケーションのE2Eテストの自動化 Webページのスクリーンショット取得 JavaScriptの自動テスト Webページで行うワークフロー処理の自動化 Webページのクローリング 古くはPhantomJSやCasperJSなどを用いていましたが、現在では主要なブラウザもネイティブでヘッドレスモードを搭載しています

                                            Rustでブラウザを操作する「rust-headless-chrome」を試してみた | DevelopersIO
                                          • AWSがプログラミング言語「Rust」に期待する理由

                                            印刷する メールで送る テキスト HTML 電子書籍 PDF ダウンロード テキスト 電子書籍 PDF クリップした記事をMyページから読むことができます Amazon Web Services(AWS)は、同社のエンジニアたちがプログラミング言語「Rust」を使っている大きな理由として、エネルギー効率の高さを挙げる。 Rustは最も若いプログラミング言語の1つだ。バージョン1.0に到達したのはほんの7年前にすぎないが、CやC++で書かれた大規模なコードベースへの採用に大きな期待がかかる。Graydon Hoare氏の個人的なプロジェクトとして始まったRustは、2010年にMozillaの研究プロジェクトとなり、現在ではAmazon、Google、Microsoftの支持を得ている。 Rustは、JavaやJavaScript、Pythonほどの人気はないかもしれないが、Linuxカーネ

                                              AWSがプログラミング言語「Rust」に期待する理由
                                            • サクッと動かすRust - Qiita

                                              概要 Rustでのプログラミングは所有権などの複雑さから難しいものに思われがちです。この記事ではRustでのプログラムをサクッと実装して実行する方法についてご紹介します。例えばAWS Lambdaのハンドラや、Open AIのAPIを呼び出すなどの日常的な作業スクリプトを簡単に実装/実行できます。 前提 rust-analyzer拡張機能 まずVSCodeのrust-analyzer拡張機能をインストールしましょう。構文の静的解析によってコンパイルしなくても文法や型のエラーを検知することができます。また後述するようにGUI上でのテストランナー機能もあるのでそちらも便利です。 Rustでサクッと実装する Result/Option Rustでは処理中に例外が発生しうる値はResultというEnumにラップされます。

                                                サクッと動かすRust - Qiita
                                              • RustによるマクロサービスフレームワークSpin入門

                                                この記事はAdvent of Spin 2023というオンラインチャレンジに参加した結果してSpinに入門した結果のまとめとなっています。学んだことのまとめですが、Spin入門としても利用いただけるかなとも思っています。 TL;DR マクロサービスフレームワークのSpinをつかって、Rustでマイクロサービスを作ります。 JSONのやり取りや、key-valueストアの利用、ルーティングがカバーされています。 Hurlというツールを使ってテストファースト開発します。 Spinとは? Spinとはマイクロサービスを作成するためのフレームワークで次の特徴があります。 イベント駆動型のフレームワーク HTTP(S)とRedisにデフォルトで対応 いくつかのストレージに標準で対応 イベントハンドラーはWasmコンポーネントとして実装される WASI preview 2に対応 開発元が配布しているコ

                                                  RustによるマクロサービスフレームワークSpin入門
                                                • GitHub - lapce/lapce: Lightning-fast and Powerful Code Editor written in 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

                                                    GitHub - lapce/lapce: Lightning-fast and Powerful Code Editor written in Rust
                                                  • 技術書典7にて『RustではじめるOpenGL』を頒布します - Toshihiro YAMAGUCHI’s Diary

                                                    来る2019年9月22日、サンシャインシティ 文化会館ビル 展示ホールで開催される技術同人誌イベント「技術書典7」にて、書籍『RustではじめるOpenGL』を頒布いたします。 『RustではじめるOpenGL』表紙 『RustではじめるOpenGL』裏表紙 書籍の情報 書籍名: RustではじめるOpenGL サイズ: B5版 ページ数: 92ページ 価格: 1000円 サークル名: Team Jackalope (リンク) 販売ブース: 「こ32D」(池袋サンシャインシティ 文化会館ビル 展示ホール 2F ホールD) (マップ) 書籍執筆に寄せて 本書は、プログラミング言語のRustでOpenGLを扱うための入門書です。 私はこれまで、OpenGLを使ってネットワーク上のデータの流れを3Dで可視化させるソフトウェアを作成してきました。 まったくOpenGLを知らないところからスタートし

                                                      技術書典7にて『RustではじめるOpenGL』を頒布します - Toshihiro YAMAGUCHI’s Diary
                                                    • Rust AST 入門

                                                      これは、簡単な Rust の AST をざっと読めるようになる、もしくは該当のドキュメントを読めるようになる、といったことを目的としたものである。入門といっても網羅的なものではなく、雰囲気を掴んでほしいという意味合いで書いたものであって細かいところまでは説明しないつもりである。なお Rust には型などより多くの情報も含む HIR などいくつかの AST があるが、ここではコンパイル時に最初に作られる AST についてのみふれる。 プログラミング言語で一般的に述べられる AST 自体についてはここでは説明しないので他を参照するとよい。有用そうなもののリンクは以下の通りである。 ASTs - What are they and how to use them Crafting Interpreters また、AST を確認するというと AST explorer も有用だが、 AST expl

                                                        Rust AST 入門
                                                      • トーバルズ氏が語ったLinux誕生初期やキャリア、Rust採用への考え--Open Source Summit

                                                        海外コメンタリー トーバルズ氏が語ったLinux誕生初期やキャリア、Rust採用への考え--Open Source Summit Steven J. Vaughan-Nichols (Special to ZDNET.com) 翻訳校正: 村上雅章 野崎裕子 2021-10-11 06:30 Linus Torvalds氏はおよそ30年前、Linuxを生み出した。そして同氏は、9月に開催されたThe Linux Foundationの「Open Source Summit」において、VMwareのバイスプレジデント兼最高オープンソース責任者であり、友人でもあるDirk Hohndel氏とLinuxの歴史について語り合った。 両氏はまず、Linuxの本当の誕生日について話した。Hohndel氏は、Torvalds氏が「Linuxの誕生日を、誰もが用いていた8月25日ではなく、『実際には9月だ

                                                          トーバルズ氏が語ったLinux誕生初期やキャリア、Rust採用への考え--Open Source Summit
                                                        • RustのWasm周りのクレートまとめと、Trunkを使ってRustで書いたWasmをブラウザ上で簡単に実行する

                                                          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の最適化をしてくれるツールです。 与えるオプシ

                                                            RustのWasm周りのクレートまとめと、Trunkを使ってRustで書いたWasmをブラウザ上で簡単に実行する
                                                          • Rustで少しずつリバーシを作ってみた

                                                            はじめに Rustの学習目的でリバーシを作ってみたいと思います。最初からすべての機能を作るのではなく、少しずつ機能を追加しながら解説していきます。また、できるだけよいコードを目指すために機能追加の度にリファクタリングをします。 最初の開発 仕様策定 まずはリバーシとして最低限遊べるうえで最も工数がかからなさそうな仕様を策定します。 cuiアプリ 矢印キーでカーソル移動 Wキーで白石を置き、Bキーで黒石を置き、Backspaseキーで石を取り除く Escキーでアプリ終了 とりあえずこれだけあればリバーシとして遊ぶことはできます。cuiアプリなので実行はWindowsTerminalを想定します。 実装 ソース とりあえずコードの良し悪しは置いといて動くものを作ります 実行結果 解説 cuiアプリとして実装するのでターミナルライブラリを導入します。今回はcrosstermを利用します。Carg

                                                              Rustで少しずつリバーシを作ってみた
                                                            • Sustainability with Rust | Amazon Web Services

                                                              AWS Open Source Blog Sustainability with Rust Rust is a programming language implemented as a set of open source projects. It combines the performance and resource efficiency of systems programming languages like C with the memory safety of languages like Java. Rust started in 2006 as a personal project of Graydon Hoare before becoming a research project at Mozilla in 2010. Rust 1.0 launched in 20

                                                                Sustainability with Rust | Amazon Web Services
                                                              • Rust初心者が楽して作るHTTPクライアントCLI (surf & clap) - 好奇心に殺される。

                                                                Rust Rust初心者が楽して作るHTTPクライアントCLI (surf & clap) 実務で使うツールをRustでサラッと実装したので、僕が踏んだ実装方法を紹介します。 Overview こんにちは pon です。これはRust Advent Calendar 2020 の記事です。 初心者がHTTPクライアントCLIをRustで書いて、実務で利用したので、実装方法を紹介します(ほとんどライブラリの紹介になる気がするが...)。Rustで何か作ってみたい人の足がかりになると思います。 作ったやつ 社内のAPIを叩くので実際のコードは公開できませんが、どんな感じのツールかを共有します。テキストからキーワード一覧を取得して、そのキーワードごとに検索エンジンが何件返すかを調べる簡単なツールです。 これを作るのに使ったライブラリを紹介します。これらを使うとRustでも簡単にHTTPクライアン

                                                                  Rust初心者が楽して作るHTTPクライアントCLI (surf & clap) - 好奇心に殺される。
                                                                • RustとWasmで静的ウェブページに日本語検索機能を追加する - Qiita

                                                                  概要 静的ウェブページ向け検索エンジンtinysearchをrust_icuのトークナイザ(icu::BreakIterator)を使って日本語対応させてみた。 また、これをmdBookに組み込み、The Rust Programming Language 日本語版へ適用してみた (chromiumのみ対応。その他は従来どおりの検索性能) 実装: https://github.com/tamuhey/tinysearch/tree/japanese mdBookへの適用: https://github.com/tamuhey/mdBook/tree/tiny_search The Rust Programming Language 日本語版への適用例: https://tamuhey.github.io/book-ja/ tinysearch tinysearchは静的ウェブページ向け検索

                                                                    RustとWasmで静的ウェブページに日本語検索機能を追加する - Qiita
                                                                  • Misskeyの遅いから「Node.jsやめる(Rustにする?)」というissueが紛糾 | スラド オープンソース

                                                                    Twitter代替サービスとしてユーザーが急増してサーバーコストが問題となっているOSSのSNSプラットフォーム「Misskey」で、「Node.jsやめる(Rustにする?)」というissueが登録されて紛糾しているようだ(はてなブックマーク)。 Misskeyのメインである「Misskey.io」のインスタンスは、個人運営であるが現在CPU1416コア、メモリ2.8TBという途方もないスペックで稼働しているという(まとめダネ!)。こうした状況を受けてか、3日に「Node.jsやめる(Rustにする?)」というissueが「Node.jsはパフォーマンス上の問題があるため。Goとかでもいいけど」というコメントと共に登録されたようだ。 issueにはタレコミ時点で94件のコメントが寄せられている他、Twitterなどでも話題となっていたが、メモリ消費が削減できそうやおもしろそうという意見が

                                                                    • プログラミング言語「Rust」とは? "Hello, World!"で基本を押さえる

                                                                      プログラミング言語「Rust」とは? "Hello, World!"で基本を押さえる:基本からしっかり学ぶRust入門(1)(1/3 ページ) Rustはどのようなプログラミング言語なのでしょうか? 本連載のスタートとなる今回は、Rust言語の概略と、手元にRustの動作環境構築までを紹介します。導入で利用可能になるコマンドと、最初のHello, World!プログラムも取り上げます。 Rustは、Webブラウザソフトウェア「Firefox」を開発しているMozillaが支援するオープンソースのプログラミング言語です。2006年に開発がスタートした当初は、Mozilla所属のグレイドン・ホアレ氏の個人プロジェクトでしたが、2009年からはMozilla自体が支援に加わり、公式プロジェクト化されました。MozillaとRustの関係は、Mozillaが2012年に開発を開始したWebレンダリ

                                                                        プログラミング言語「Rust」とは? "Hello, World!"で基本を押さえる
                                                                      • Rustで相互参照: ノーガード戦法編 - Qiita

                                                                        RustはトレースGCを持たずRAIIと所有権に基づくメモリ管理を行います。これには様々な利点がある一方、相互参照をもつデータの扱いが他のプログラミング言語より難しいという困難があります。本記事では、あまり一般的ではないが特定の限られた用途では有用と思われる方法を紹介します。 標準的な方法 まずは相互参照が起きないように設計を再考するのがいいでしょう。特に「子データから親データを参照する」といったユースケースでは、必ずしも子データ自体が親データへの参照を持たなくてもいいことがあります。以下ではこれに当てはまらない例、典型的にはグラフの表現を念頭に置いて記述します。 Rustで相互参照を扱う最も標準的な方法は、typed_arenaなどのアリーナアロケーターと RefCellなどの内部可変性コンテナを組み合わせる方法です。これについては私のブログ記事などを参考にしてください。 またRustの

                                                                          Rustで相互参照: ノーガード戦法編 - Qiita
                                                                        • Rustの構造体に文字列を持たせるいくつかの方法 - Qiita

                                                                          きっかけ Rust Programming Language Forumにこんな質問が出ていました。 構造体にStringを持たせられるようにStringを受け取りたいです。これを実現する方法はいくつかあります。 &str String T: Into<String> T: AsRef<str> 例: pub struct Person { name: String, } impl Person { pub fn new(name: WhatTypeHere) -> Person { Person { name: name.some_conversion() } } どれが一番Rustらしい書き方ですか? 単純に構造体に文字列を持たせる方法はいくつかあるのですが、実はその実装方法によって文字列のコピーやアロケーションの回数が異なります。 ここでは、上記の4つの場合と、コメント欄で提案されて

                                                                            Rustの構造体に文字列を持たせるいくつかの方法 - Qiita
                                                                          • RustとDioxusで投稿アプリのSPAを作ってみよう

                                                                            Dioxusの概要 Dioxus(ディオクサス)は、Dioxus Labsによるクロスプラットフォーム対応のアプリを構築できるRustライブラリです。移植性が高く(portable)、高性能で(performant)、人間工学に基づいた(ergonomic)設計が特徴とされています。Dioxusでは、単一のコードで以下のプラットフォームで動作するアプリを開発可能です。 (1)Web WebAssembly技術を用いたSPA(Single Page Application)を開発できます。WebAssemblyについては@ITの連載「いろんな言語で試す、WebAssembly入門」で紹介しています。その第5回「RustでWebAssembly――「Rust and WebAssembly」を体験する」でRust and WebAssemblyを紹介しています。本記事の理解にWebAssemb

                                                                              RustとDioxusで投稿アプリのSPAを作ってみよう
                                                                            • Rust for Linuxを手元で試す

                                                                              RustをLinuxカーネルに組込みプロジェクト、Rust for Linuxが進行中です。 このプロジェクトはLinuxカーネル全体をRustで置き換えるわけではなく、第二言語としてRustを採用してデバイスドライバなどのモジュールを書くことができるようにしようというものです。 RustはOSのような低レイヤーソフトウェアを実装する言語として、C言語に代わる選択肢として注目されてきたわけですが、Linuxのような広く使われているシステムに採用されるとなればかなり熱いですね。 実際にLinuxのメインラインに取り入れられるにはまだまだ課題は多いものの、Linus氏を含むLinuxの開発者からのフィードバックも比較的ポジティブでこれからが注目されています。 そんなRust for Linuxを手元でビルドして動かしてみました。 一応、基本的な手順はレポジトリ内のドキュメントにまとまっているの

                                                                                Rust for Linuxを手元で試す
                                                                              • YJIT: Dive into Ruby's JIT compiler written in Rust / Rust.Tokyo 2022

                                                                                Rust.Tokyo 2022

                                                                                  YJIT: Dive into Ruby's JIT compiler written in Rust / Rust.Tokyo 2022
                                                                                • Rustで自作シェル書いてみた

                                                                                  はじめに 自作シェルを書いてみた記事はよく見かけるのですが、そのほとんどが fork -> exec という流れです。仕組みを学ぶという点で非常に有効なのでそれはそれで良いとして、 Rust では標準ライブラリの std::process::Command を使用してもっと簡単にコマンド実行ができるよ! という記事があまりないので書いてみました。 コマンドの実行 REPL パース処理はできるだけシンプルに書きます。 標準入力から1行読み取り、Command::spawn() で実行します。 それを繰り返すのが REPL (Read-Eval-Print Loop)です。 これだけでシェルと言い張っても良いと思っています🤔 use std::io::{self, Write}; use std::process::Command; fn main() { loop { // プロンプト p

                                                                                    Rustで自作シェル書いてみた