並び順

ブックマーク数

期間指定

  • から
  • まで

201 - 240 件 / 5920件

新着順 人気順

rustの検索結果201 - 240 件 / 5920件

  • Rustでシンプルなロードバランサーを作成してみた - Qiita

    はじめに この文章はGoでシンプルなL7ロードバランサーを作成するというKasun Vithanageさんの記事を参考にRustでL7ロードバランサーを書いてみたという記事です。ロードバランサーについて、ちゃんと勉強するならそっちを見た方が良いかもしれません。 またこの記事を書いている途中にactix-webのexampleのレポジトリがガッツリとactix-web 2.0-alpha.3に書き換えられました。actix-webの2系はfuturesの0.3系を使っております(actix-webの1系はfuturesの0.1でした)。多いに参考にさせてもらっております。途中までサンプルなしで2.0-alpha.1を強引に動かしていたので非常に助かりました。 成果物 https://github.com/rchaser53/rlb 実装する内容について NginxのようなL7ロードバランサー

      Rustでシンプルなロードバランサーを作成してみた - Qiita
    • Rustが遅すぎる?プロファイリングで性能向上!

      「開発プロセスにプロファイリングを組み込むのはどうだろう?」 ミーティングで、プロファイリングの重要性を発言するだけで、みんながあなたの深い知見、意識の高さに驚くことでしょう。もちろん、あなたは、プロファイリングのやり方を知っている必要はありません。開発の終盤に、性能目標が達成されず、解析が実施される頃には、誰もあなたの発言は覚えていません。しかし、万が一、あなたの意見が採用されても困らないように、この記事を参考にしてください。 Goは、CPU、メモリ、block、mutexなど、使いこなせないほどの種類をサポートするプロファイリングツールpprofを標準機能として提供します。一方、Rustは、そんな機能を提供しません。Rustへの愛が揺らぐかもしれませんが、Rustへの愛は、見返りを求めない純愛です。愛の見返りに何かが与えられると期待してはいけません。 Rustでもpprofあなたは、す

        Rustが遅すぎる?プロファイリングで性能向上!
      • なぜRustを学ぶべきなのか 〜 5年経った今改めてまとめてみる - Qiita

        Rust 1.0がリリースされたのは2015年の5月で、5年前のこととなります。自分は1.0 betaのころにRustを始めたので、なかなか感慨深いものです。この5年の間に、いくつもの企業でRustを採用、もしくはその検討がされるようになり、ゆるやかであるもののRustの普及が進んでいると感じます。 そこで、1.0から5年経ち、だんだんと普及しつつあるこの時期に、なぜRustを使うべき、学ぶべきなのか、改めてまとめてみようかと思います。Rustを簡単に紹介する場合、メモリ安全とパフォーマンスの両立、高い生産性をもたらす言語機能などが挙げられることが多いですが、自分なりにRustを学ぶ意味を掘り下げてみようと思います。 なお、以下の文章はほとんど個人的な経験に基づいて書かれたものですので、その点はご注意下さい。 Rustはほどよい機能を提供する言語である 世の中には様々なプログラミング言語が

          なぜRustを学ぶべきなのか 〜 5年経った今改めてまとめてみる - Qiita
        • RustのWebフレームワークで実現する“爆速アプリ開発” 「こういうのやりたい」がすぐできる、actix-webの活用

          ウェブアプリケーションをRustで開発している、株式会社estie。今回開催された「Rust、何もわからない…」では、実サービスで活用されているRustについて、その活用方法の事例を紹介しました。estieでアルバイトとしてRustを用いたウェブアプリの開発に取り組んでいるkenkoooo氏。「actix-web」の活用について発表しました。 アジェンダの紹介 kenkoooo氏:では僕、kenkooooが「actix-webで快適Webアプリ生活」というタイトルで発表します。よろしくお願いします。 (スライドを示して)今日発表したいことは、actix-webというRustのWebフレームワークが、どれだけ使いやすいかということです。それから、これは立ち入った話なのですが、actix-webのミドルウェアという機能があって、それも今estie(株式会社estie)でけっこう使っているので、

            RustのWebフレームワークで実現する“爆速アプリ開発” 「こういうのやりたい」がすぐできる、actix-webの活用 
          • Facebook、次期ビルドシステムの開発でRust言語の採用を明らかに

            Facebookは同社のソフトウェア開発において、同社が主導して開発しているオープンソースのビルドシステム「Buck」を利用しています。 Backは高速なビルドが可能な点を大きな特徴としており、もともとAndroidアプリケーション向けのビルドシステムとして登場しました。 その後対応する言語やプラットフォームが拡張され、現在では15種類以上のプログラミング言語と、さまざまなスマートデバイス、VRヘッドセット、そしてサーバアプリケーションにまで対応しています。 次期ビルドシステムの開発を決断 しかしこうした拡張を重ねる中でBuckの複雑さは増していき、新機能の追加がどんどん難しくなってきたと、Facebook Developersのブログに投稿された記事「The future of Buck」で吐露されています。 同社の開発チームは約4年前から、Buckのアーキテクチャの改善を段階的に行う取

              Facebook、次期ビルドシステムの開発でRust言語の採用を明らかに
            • A half-hour to learn Rust

              A half-hour to learn Rust In order to increase fluency in a programming language, one has to read a lot of it. But how can you read a lot of it if you don't know what it means? In this article, instead of focusing on one or two concepts, I'll try to go through as many Rust snippets as I can, and explain what the keywords and symbols they contain mean. Ready? Go! Variable bindingsThe let keywordlet

                A half-hour to learn Rust
              • Rustで作るLinuxデバイスドライバ

                だれでもできるシリーズとして、Rustでカーネルモジュールを実装しながら学んできましたが(役に立たないキャラクタデバイスドライバなど)、そろそろ実際に使える機能を実装したいころですよね! 今回は、筆者が実装したネットワークPHYドライバが、Rustで実装された初めてのデバイスドライバとしてLinuxカーネルに採用された話を紹介します。 誤解:LinuxカーネルがRustをサポート「LinuxカーネルがRustをサポートした」というニュースを見て、Rustのコードがどんどん採用されていると誤解している方もいるようです。このニュースは、「LinuxカーネルをRustでも書けるようになりましたが、実際に何かを実装するかどうかは未定」という意味です。Linuxカーネルは、メモリマネージメント、ネットワーク、暗号など、数多くのサブシステムで構成されており、それぞれのメンテナが、コードの採否を判断しま

                  Rustで作るLinuxデバイスドライバ
                • Rust concepts I wish I learned earlier

                  This past month, I have been enthralled by the Rust programming language given its unique edge for writing memory-safe, modern programs. Over the years, several languages have emerged as the most preferred by engineers to write resilient, backend software. The tides have shifted from Java/C++ into Go and Rust, which combine decades of programming language theory to build tools that are effective i

                    Rust concepts I wish I learned earlier
                  • TypeScriptやGoやRustでWebAssemblyウォークスルー - SMARTCAMP Engineer Blog

                    みなさん、WebAssembly聞いたことありますよね? スマートキャンプでエンジニアをしている瀧川です。 私が初めてWebAssemblyを目にしたのは確か2018年、VimをWebAssemblyに移植してブラウザで動くようにしたという記事だったかなと思います。 https://github.com/rhysd/vim.wasm 当時は「はー、なんだか未来を感じるけど、どう使われてくんだろう」くらいな認識で、最近までほとんど注目していませんでした。 しかし、少し前にffmpeg.wasmについての記事がバズっているのを見かけたときビビっときましたね。 ブラウザ上でffmpegが動かせるのはWebアプリケーションを作る上で可能性が広がりますし、何よりWebAssemblyのポテンシャルが活かされていると感じました。 そこで今回、WebAssemblyの世界観を味わうために、代表的なWeb

                      TypeScriptやGoやRustでWebAssemblyウォークスルー - SMARTCAMP Engineer Blog
                    • GoCLIツール職人のためのRust入門

                      三連休中にこんなツールを作った。 普段はGoでCLIツールを書いているけど、このツールで初めてRustを本格的に使ったのでその際に得た知見を元にGoでCLIを作っている人向けにとりあえずRustでツールが作れる状態になれることを目指して、CLIツールを作るときによく使っている処理やRustならではの構文などを中心に書いてみた。 この記事を通して「なぁ~んだ。案外Rustでもサクッとツール作れそうじゃん」とか「Rustにも意外とツール向けのライブラリとかあるんだなぁ」とか思って貰えると嬉しい限り。

                        GoCLIツール職人のためのRust入門
                      • グーグル、Rustで書かれたセキュアなOS「KataOS」を発表

                        Googleが「KataOS」を発表した。これはオープンソースの「RISC-V」チップで動作する組み込みシステム向けに、新しいセキュアなOSを模索する初期段階の試みだ。 KataOSは「ほぼ完全にRustで」書かれているという。Rustは「Androidオープンソースプロジェクト」やLinuxカーネルプロジェクトで採用されているプログラミング言語だ。 Googleのオープンソースチームは、「KataOSはほぼ完全にRustで実装されており、Off-by-oneエラー(OBOE)やバッファオーバフローのようなバグのクラス全体を除去することで、ソフトウェアセキュリティの強力な出発点になる」と説明している。同チームは、インテリジェントなアンビエント機械学習(AmbiML)システムの構築を進めている。 プロジェクトのGitHubページでは、KataOSとそれを包含するプロジェクト「Sparrow」

                          グーグル、Rustで書かれたセキュアなOS「KataOS」を発表
                        • RustにおけるGitHub Actionsベストプラクティス - paild tech blog

                          こんにちは大櫛です。Travis CIがオープンソースプロジェクトで使いづらくなったり、Azure PipelinesからGitHub Actionsになった途端*1爆発的な流行が生まれたりと、CIサービスにおいてもここ数年で色々な動きがありました。 特に技術記事・ブログのトレンドや企業のリクルート向け資料を見ていると、GitHub Actionsの利用が進んでいるような印象を受けます。 今回はそんなGitHub Actionsについて、Rust projectで使う際に知っておいた方がいいことやactionを紹介していきます。 以下の情報は執筆時点(2023-02-19)のものに基づいています。閲覧時には無効・誤ったものになっている可能性がありますので、必ず最新の情報・状態を確認するようにしてください。 actions-rs(非推奨) まずはじめに、執筆時点では使用を控えた方がいいact

                            RustにおけるGitHub Actionsベストプラクティス - paild tech blog
                          • Writing a container in Rust

                            Just writing about Rust stuff, Python automation, random tech subjects, and anything related to the world, virtual or not, dreamt or real. Website moved to litchipi.site, nothing new will be published there. All the articles can be read from the new website

                            • 米国防総省DARPA、C言語のコードからRustへの自動変換実現を目指す「TRACTOR」プログラム開始

                              米国防総省DARPA、C言語のコードからRustへの自動変換実現を目指す「TRACTOR」プログラム開始 アメリカ国防総省 DARPA(Defense Advanced Research Projects Agency:国防高等研究計画局)は、C言語のコードからRust言語のコードへ高い精度での自動変換実現を目指す「TRACTOR」(Translating All C to Rust)プログラムの開始を発表しました。 DARPAは軍事技術の開発および研究を行う機関であり、現在のインターネットはDARPAの前身となるARPAが1967年に開始した「ARPANET」がその起源であることはよく知られています。 DARPAが発表したTRACTORプロジェクトは、C言語のコードからRust言語のコードへの自動変換を高い精度で実現することで、過去にC言語で開発された多くのソフトウェアをメモリ安全なソフ

                                米国防総省DARPA、C言語のコードからRustへの自動変換実現を目指す「TRACTOR」プログラム開始
                              • 一人称視点で自然に足元が見えるようにするには? 人気サバイバルゲーム『RUST』の開発者が6年間にわたり悩み続けた苦労話を公開

                                初の有料ダウンロードコンテンツとして10種の楽器を追加することを発表したオープンワールドサバイバルゲーム『RUST』が、先週のアップデートでプレイヤーキャラクターに初めて「脚」を追加した。プレイヤーは現在、ゲーム中に下を見れば自分の下半身を見ることができる。 もし現実世界のあなたがいま動けるなら、一度立って下を見てほしい。自然に自分の脚が見えるはずだ。現実を模倣していると思われがちな一人称視点ゲームだが、実は多くの嘘の上に成り立っている。プレイヤーモデルを作り、目の部分にカメラをただ設置するだけでは自然な描写にはならない。一人称視点ゲームでは、ただ下を向いて脚を見るだけでも実は嘘をついているのだ。 『RUST』を開発するギャリー・ニューマン氏が、一人称視点ゲームで違和感なくプレイヤーキャラクターの下半身を描写する苦労話をブログで公開している。 (画像はGarry’s Blog「Rusty

                                  一人称視点で自然に足元が見えるようにするには? 人気サバイバルゲーム『RUST』の開発者が6年間にわたり悩み続けた苦労話を公開
                                • フルスクラッチでQEMU型自作エミュレータはどう作る? Rustを使った自作バイナリ変換型シミュレータ

                                  Kernel/VM探検隊はカーネルや仮想マシンなどを代表とした、低レイヤーな話題でワイワイ盛り上がるマニアックな勉強会です。msyksphinz氏は、自作エミュレータで得た学びについて発表しました。全2回。前半は、自作エミュレータの実装とその結果について。 実機が存在しなくてもエミュレータを使えば動きの中身が見える msyksphinz氏(以下、msyksphinz):「Rustで作るフルスクラッチQEMU型エミュレータ」と題して、発表をします。 簡単に自己紹介をさせてください。Twitterだとこういうアカウントでいろいろと活動しています。趣味で「FPGA開発日記」というブログを書いていて、RISC-V、FPGA、CPU、低レイヤプログラミングなど、興味のあるものの記事を書いています。本業はハードウェア開発エンジニアをしていて、汎用CPUの設計などの仕事をしています。 今回はRustとい

                                    フルスクラッチでQEMU型自作エミュレータはどう作る? Rustを使った自作バイナリ変換型シミュレータ
                                  • Rust の嬉しさをより多くの日本語話者に知ってもらうためには、スタンフォードで強く敷かれている educational benefit の概念を Rust コミュニティが抱くことが大事なのではないか、という私見

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

                                      Rust の嬉しさをより多くの日本語話者に知ってもらうためには、スタンフォードで強く敷かれている educational benefit の概念を Rust コミュニティが抱くことが大事なのではないか、という私見
                                    • 「Rust」言語向けの“ビジュアルタイムトラベルデバッガー”「FireDBG」が公開/関数の呼び出しを「コールツリー」として可視化、自由に時間を移動してエラーを特定

                                        「Rust」言語向けの“ビジュアルタイムトラベルデバッガー”「FireDBG」が公開/関数の呼び出しを「コールツリー」として可視化、自由に時間を移動してエラーを特定
                                      • Rustベースのモダンなterminal 、 Warp | DevelopersIO

                                        Introduction Warpは、生産性と使い勝手を考えて再設計されたRust製のterminalです。 先日パブリックベータが開始され、誰でも使えるようになりました。 ※現在はMacのみ。他のプラットフォーム近日対応予定とのこと 完全Rustネイティブのアプリで、GPUでレンダリングするので高速です。 いまの開発に適した、モダンな機能をそなえたterminalになっています。 Why Warp? ここに、なんでいまさらterminal? の理由が書いてます。 かんたんにまとめると、 開発者ならコードエディタとターミナルは絶対使う コードエディタはどんどん進化してるがterminalは昔から変わってないから再開発した Warpの入力は最新のテキストエディタみたいに使える。出力はnotebookみたいに使える。 よく使うコマンドをsuggestionしたり、ワークフロー機能でコマンド入力

                                          Rustベースのモダンなterminal 、 Warp | DevelopersIO
                                        • 開発者がもっとも好きなプログラミング言語は「Rust」、Stack Overflow「2020 Developer Survey」より

                                          調査結果のうち、言語またはその技術を使用して開発を行っており、継続的に利用したいプログラミング言語を尋ねた質問(複数回答)では、Rust(86.1%)が1位となった。その理由としては、パフォーマンス、制御のしやすさ、安全にメモリを利用できること、システムプログラミングに適した同時実行性の高さ、マクロなどが挙げられている。オープンな開発プロセスを採用していることもあって、(利用していない人を含む)多くのプログラマから高い評価が寄せられた。 2位はTypeScript(67.1%)で、WebフロントエンドおよびNode.jsコードベースにおけるサイズと複雑さの増大と相まって、TypeScriptの静的型付けによるコードの正確性が、プログラマの信頼感を高めている。また、TypeScriptのpolyfillによって、ECMAScriptにおけるアロー関数や非同期処理、クラスといった変更との高い互

                                            開発者がもっとも好きなプログラミング言語は「Rust」、Stack Overflow「2020 Developer Survey」より
                                          • VSCodeがWebAssemblyの実行時デバッグに対応。C/C++やRust、Zigなどのソースコードと関連付け、変数参照、ブレークポイントなど可能に

                                            VSCodeがWebAssemblyの実行時デバッグに対応。C/C++やRust、Zigなどのソースコードと関連付け、変数参照、ブレークポイントなど可能に マイクロソフトは、オープンソースで開発しているコードエディタ「Visual Studio Code」(以下、VSCode)の最新版となる2023年9月版(バージョン1.83)で、JavaScriptデバッガがWebAssemblyのデバッグにも対応したことを明らかにしました。 The JavaScript debugger can now debug code compiled into WebAssembly if it includes DWARF debug information. For example, C++ code compiled using Emscripten can be debugged: pic.twitt

                                              VSCodeがWebAssemblyの実行時デバッグに対応。C/C++やRust、Zigなどのソースコードと関連付け、変数参照、ブレークポイントなど可能に
                                            • 書き捨てるためのRust - Qiita

                                              はじめに Rustは「きちんとしたプログラムを書く時にはいいけど、書き捨てのプログラムを書くには向いていない」と言われることがあるようです。「一般論としては全くその通り」と思う一方で、自分自身を振り返ってみると、これまでPythonで書いていたような書き捨てに近いプログラムも全部Rustで書くようになっています。 なぜ書き捨てのプログラムもRustで書くのかを考えてみると 最初は書き捨てだと思っていても、手直ししながら使い続けることは意外と多い コンパイラが割と多くのエラーを捕捉してくれるのでデバッグの時間が短くて済む 記述量の多さはエディタの補完があってあまり気にならない といったあたりが理由になっています。 そうはいってもRustがいろいろと面倒な言語であることには違いないので、書き捨てるときは普段のRustプログラミングとは少し違った書き方をした方がより早く書けるのではないかと思いま

                                                書き捨てるためのRust - Qiita
                                              • [Rust] 自然に見える迷路の生成

                                                Rust でやるゲーム開発アルゴリズムシリーズ、第4弾ぐらいでしょうか? 今回はプログラム的に迷路生成をします。 元々は、四分木による経路探索をテストするために考えたものですが、これはこれで独立した知見になりそうなので別記事にしました。 自然に見える迷路とは 何をもって自然な迷路というかは、人によると思いますが、ここでは次のような感じのものを指します。 ある程度迷路としての構造を持ちながらも、分岐やループを持ち、道幅をいくらか持つことによってエージェント同士がすれ違えるようにします。 また、壁の形状にノイズを加えて単調にならないようにしています。 総合的には、鍾乳洞のような天然の洞窟というほどは自然ぽくはありませんが、完全に人工的な環境というわけでもない、ほどほどに自然な迷路を目指します。 このような地形のプロシージャル生成については、様々な方法があります。 ここで紹介するのはごく一部で、

                                                  [Rust] 自然に見える迷路の生成
                                                • Rustは銀の弾丸となり得るか 新しいOS開発を実現する可能性

                                                  Kernel/VM探検隊はカーネルや仮想マシンなどを代表とした、低レイヤーな話題でワイワイ盛り上がるマニアックな勉強会です。garasubo氏からは、「Rust」で新しいOSの設計を試みる3つのOSについて発表がありました。 「Rust」で新しいOSの設計を試みる論文を紹介 garasubo氏:よろしくお願いします。「RustはOS界の銀の弾丸になりうるか 論文で見るRustで変わるOS設計」というタイトルでgarasuboが発表します。内容を詰め込みすぎちゃったので、けっこう駆け足の発表になると思いますが、ご了承ください。 Rustは、OSを書くにあたってC言語の代わりになるんじゃないかといろいろと注目されてきていて、今回は3つの論文を紹介します。論文はRustを使って新しいOSの設計を模索するというものです。 1つ目がSOSP2017(Symposium on Operating Sy

                                                    Rustは銀の弾丸となり得るか 新しいOS開発を実現する可能性
                                                  • 第1回 Rust Hands-On

                                                    2021/02/17 に、サイバーエージェント社内向けに開催した Rust ハンズオンの資料です。第1回は、Rust の概観を掴んでもらうことを目的にプレゼンテーションを行いました。

                                                      第1回 Rust Hands-On
                                                    • Rustのコードチェックを強力にする3つのツール | κeenのHappy Hacκing Blog

                                                      κeenです。 Rustaceanのみなさんは普段書いてるRustのコードを検証するのに cargo check や cargo test などのツールを使っているかと思いますが、それらを強力にするツールの miri 、 MIRAI 、 kani をそれぞれ紹介します。 Rustにはいくつかコードの正しさや行儀のよさを検査する方法がありますね。 cargo check や cargo test 、 あるいはビルドしたバイナリを走らせて検証したり色々手を尽くしているでしょう。 ですがこれらだけだとあらゆる種類のバグを拾いきれる訳ではないのもみなさん承知の通りだと思います。 既存の方法だと手が回らない所があるので他のアプローチでコードを検証してくれるツールがあると嬉しいですよね。 そういったツールを3つ紹介します。 先に注意しておくと、これらのツールはまだ成熟しきってはおらず使いづらい点、使い

                                                        Rustのコードチェックを強力にする3つのツール | κeenのHappy Hacκing Blog
                                                      • Introducing Turbopack: Rust-based successor to Webpack – Vercel

                                                        Vercel's mission is to provide the speed and reliability innovators need to create at the moment of inspiration. Last year, we focused on speeding up the way Next.js bundles your apps. Each time we moved from a JavaScript-based tool to a Rust-based one, we saw enormous improvements. We migrated away from Babel, which resulted in 17x faster transpilation. We replaced Terser, which resulted in 6x fa

                                                          Introducing Turbopack: Rust-based successor to Webpack – Vercel
                                                        • Rustで扱える機械学習関連のクレート2021 - Stimulator

                                                          - はじめに - 本記事では、Rustで扱える機械学習関連クレートをまとめる。 普段Pythonで機械学習プロジェクトを遂行する人がRustに移行する事を想定して書くメモ書きになるが、もしかすると長らくRustでMLをやっていた人と視点の違いがあるかもしれない。 追記:2021/02/24 repositoryにしました。こちらを随時更新します github.com 追記;2021/07/26 GitHub Pagesでウェブサイトにしました vaaaaanquish.github.io - はじめに - - 全体感 - - 機械学習足回り関連のクレート - Jupyter Notebook Numpy/Scipy Pandas 画像処理 形態素解析/tokenize - scikit-learn的なやつ - 各ライブラリと特徴比較 - Gradient Boosting - XGBoos

                                                            Rustで扱える機械学習関連のクレート2021 - Stimulator
                                                          • マイナンバーカードの仕組みはどうなっている? RustでAndroidアプリを作ってみて分かったこと【デブスト2021】

                                                            2020年コロナ禍の特別定額給付金では、マイナンバーカードがあればオンライン申請できて早めに給付金を受け取ることができた。少しずつマイナンバーカードを持つメリットが増えてきた。将来的には健康保険証や運転免許証の代替として利用できるという話もある。しかしもっと大きなメリットがあるという。ゆめみ 池口直希氏がRustを使ったマイナンバーカードを操作するアプリの作成を通して解説する。 株式会社ゆめみ マーケティングソリューション事業部 サーバーサイドエンジニア 池口 直希氏 マイナンバーカードの仕組みはどうなっている? 国立豊田高専を中退し、2021年4月にゆめみに入社した池口直希氏。サーバーサイドエンジニアでPHP、TypeScript、C#、Go、Rustといった言語のほか、AWS、Terraform、Dockerなどを使う。「なんでも屋なので、フロントエンドにも手を出したりもしています」と

                                                              マイナンバーカードの仕組みはどうなっている? RustでAndroidアプリを作ってみて分かったこと【デブスト2021】
                                                            • Rust/WebAssemblyのトラブルに効くデバッグ&高速化テクニック

                                                              本連載では、Webブラウザー上でJavaScriptとともに動作できるバイナリ形式のプログラムファイル「WebAssembly」を、Rustプログラミング言語で実装する方法を説明していきます。前回はRust/WebAssemblyとJavaScriptとのデータ交換について説明しました。今回は、ログ出力とファイルサイズ縮小の方法、および、成果物をパッケージにして世界に公開する方法を説明していきます。 はじめに 本連載では、Webフロントエンド開発において注目されているバイナリ形式のプログラムファイルWebAssemblyを、Rustで実装して活用する方法を説明しています。 より本格的にプログラムを開発するには、正しく動作させるまでにデバッグを行う必要があります。本記事ではデバッグ時に利用できるログ出力について説明します。また、アプリの読み込み速度をより速くできる、ファイルサイズ縮小方法につ

                                                                Rust/WebAssemblyのトラブルに効くデバッグ&高速化テクニック
                                                              • Rust始めてみた。JSONフォーマッターを作ってみた | stin's Blog

                                                                唐突にRustを使ってみたいと思ったので勉強を始めてみました。 始めた理由始めてみたかった理由は色々あります。 まずはやはりフロントエンド開発ツールが色々とRustで実装されることです。VercelはTurborepoとTurbopackをRustで実装していますね。JavaScriptコンパイラのSWCもRustで実装されています。あとは、uhyoさんのnitrogqlもRustで作られていて、おもしろいなと思いました。そんな感じで、コンパイラ実装でRustがよく使われていることと、ビルドツールなどのテキスト処理に興味があったのが1つ目の理由です。 あとは、Tauriですね。ふとデスクトップアプリを作りたいと思ったときにTauriを調べたんですが、TauriのバックエンドをRustで書けたらかっこいいなと思いました。普通にJavaScriptでも書けるらしいんですが、かっこよさ重視です。

                                                                  Rust始めてみた。JSONフォーマッターを作ってみた | stin's Blog
                                                                • Linuxのネットワークスタックが遅すぎる?RustとXDPでパケット処理!

                                                                  「Linuxのネットワークスタックが遅すぎる!」 詳細はわかりませんが、すごくエンジニアステージが高そうですね!ネットワークスタックの高速化は多くの前例があり、中途半端に試すと、周辺の詳しい人に一晩中、指導をうけるはめになりかねません。前例のないRustなら安心です。 典型的な高速化手法広く使われている高速化手法は、オペレーティングシステムのプロトコルスタックを使わずに、サーバアプリケーションが直接、NICにアクセスして、パケットを処理するというものです。Linuxの上で、FreeBSDのプロトコルスタックとサーバアプリケーションを統合するという、謎の組み合わせを運用しているクラウド事業者もいます。 上記の高速化手法のポイントの一つが、アプリケーションが、高速に、NICにアクセスするための手法です。たくさん提案されてきましたが、今回は、現在、人気があるXDPを使うことにします。聞いたことが

                                                                    Linuxのネットワークスタックが遅すぎる?RustとXDPでパケット処理!
                                                                  • Rust ツアー - Let's go on an adventure!

                                                                    こんにちは、 Rust ツアーへようこそ。 これはプログラミング言語 Rust の機能を段階的にガイドすることを目的としています。 Rust は学習曲線が急な言語だと見なされることが多いですが、 複雑な事項に進む前に探ることがたくさんあると納得していただければと思います。 このガイドは以下の言語で見ることができます。 Deutsch English Español Français Interlingue Magyar Polski Português Brasileiro Română Русский 简体中文 繁體中文 日本語 한국어 Türkçe Українська ภาษาไทย Tiếng Việt コンテンツへの提案や翻訳に貢献したい場合、 Rust ツアーの github リポジトリをチェックしてください。 キーボードの ⬅️ と ➡️ でツアーをナビゲートできます。 この

                                                                    • 【個人開発】爆速な賃貸検索サービスをさらに高速化した【Rust】 - Qiita

                                                                      個人で運営している賃貸物件の検索サービス Comfy のバックエンドを Rust でリプレースしました。この記事では、そのリプレースの背景と詳細をご紹介します。 まずは結果から 技術構成: Rust + Cloud Run1 へ移行 (Python + GCE2 から) 性能向上: 約 1.5 倍 開発期間: 1 ヶ月間 コード行数: 約 40 % インフラ費用: かなり減少 (多分3) 短い期間・少ないコードでかなり高速化できちゃった上に、開発体験もとてもよい Rust は本当に素晴らしいです…!! サービス概要 Comfy は 日本全国の賃貸物件を超高速に検索できる Web サービス です。 技術構成等の概要は、以前書いた記事 「【個人開発】爆速な賃貸物件の検索サービスを作った」 をご覧頂ければと思います。 もしよかったらこちらからぜひ試して頂き、さらによくなった性能を体感してみて下さ

                                                                        【個人開発】爆速な賃貸検索サービスをさらに高速化した【Rust】 - Qiita
                                                                      • Linuxカーネルが難しい?Rustで実装しよう!. 「カーネル開発者になりたい!」 | by FUJITA Tomonori | nttlabs | Jul, 2020 | Medium

                                                                        「カーネル開発者になりたい!」 クラウドネイティブ世代の皆様は、何を言っているのか理解できないと思いますが、一昔前は、Linuxカーネル開発の魅力におぼれたエンジニアがたくさんいました。クラウドファースト時代に、誰もやってないだろうと、軽い気持ちで試すと、今もひっそりと生息しているカーネル開発者に、一晩中、指導をうけるはめになりかねません。前例のないRustなら安心です。 RustでLinuxカーネルモジュールが実装できるRustでカーネルモジュールを実装する利点Rustへの愛だけが理由ではなく、カーネル開発にRustを用いると、様々なバグを減らすことができそうという利点があります。例えば、動的なメモリ管理で、うっかり、解放を忘れるとか、解放した後に使ってしまうと、往々として、辛いデバッグになります。 Rustで実装した簡単なカーネルモジュールRustのカーネルモジュール開発フレームワーク

                                                                          Linuxカーネルが難しい?Rustで実装しよう!. 「カーネル開発者になりたい!」 | by FUJITA Tomonori | nttlabs | Jul, 2020 | Medium
                                                                        • この一年やったこと、継続していること (Rust とか 英語とか) - from scratch

                                                                          前回エントリを踏襲し、さらに一年間どんな事をやったか、という話を書こうかなと。 yosuke-furukawa.hatenablog.com 一年間やったことを振り返ると、英語と競技プログラミング、その過程で Rust をやっていました。 競技プログラミング系 LeetCode この一年間でトータルで解いた問題が806問になりました。これまで JavaScript で解いてたやつを Rust で解き直したりしてたので、解答数はそこまで増えてないのですが、 Rust の勉強と割り切っていたので、目標としては良かったかなと思います。 github.com LeetCode の戦績 一年間ずっとやったことで、金バッジをもらいました。 LeetCode Annual Badge ただ競技プログラマーとしてなにか成長したかと言うと、前回よりは解けるものの、「解けない問題が解けるようになった」というよ

                                                                            この一年やったこと、継続していること (Rust とか 英語とか) - from scratch
                                                                          • Rust+Webフロントの最前線!tauriを試してみた

                                                                            @Pctg_x8です。 Deno 1.0の登場でRustとWeb関連技術の繋がりがより高まっていく中で、Electronライクな新しいアプリケーションフレームワークである「tauri」を見つけましたのでちょっと触ってみようと思います。 tauriについて 公式サイト: https://tauri.studio/ ※この記事ではv0.9.2をベースに解説しています。 tauriはまだメジャーバージョンが1になっていないため、頻繁にAPIの変更が起こる可能性があります。 概要 フロントはElectronと同じくWebViewですが、ベースの起動プログラム(Main Process)をRustで書くことができるものです。 ElectronではMain ProcessもJavaScript(Node.js)なので、例えば大量のデータを並行してバッと読むとか解析するとかの処理をさせようとすると マル

                                                                              Rust+Webフロントの最前線!tauriを試してみた
                                                                            • PythonとRustの融合:PyO3/maturinを使ったPythonバインディングの作成入門 | gihyo.jp

                                                                              Cargo.tomlにはデフォルトのメタデータとPyO3の依存関係(バージョン)などが記載されています。また、pyproject.tomlにはビルドツールとしてmaturinが使用されることなどがあらかじめ定義されています。 注目すべきはRustスクリプトを記述するsrc/lib.rsファイルです。以下のようなscaffold(足場)が最初から記載されています。 src/lib.rsにデフォルトで記載されているscaffold 1 use pyo3::prelude::*; 2 3 /// Formats the sum of two numbers as string. 4 #[pyfunction] 5 fn sum_as_string(a: usize, b: usize) -> PyResult<String> { 6 Ok((a + b).to_string()) 7 } 8 9

                                                                                PythonとRustの融合:PyO3/maturinを使ったPythonバインディングの作成入門 | gihyo.jp
                                                                              • Rustに貢献してみませんか?コントリビューターたちが語る開発の裏側とOSS活動の魅力 - Findy Engineer Lab

                                                                                「効率的で信頼できるソフトウェアを誰もが作れる言語」を提唱するプログラミング言語・Rust。その優れたパフォーマンスやプログラムとしての信頼性・生産性の高さなどから、近年非常に人気を集めています。 Rustのようなオープンソースソフトウェア(以下、OSS)の開発を支えているのは、機能開発やドキュメント整備など、プロジェクトに何らかの形で貢献をするコントリビューターたちです。今回はRustのコアコミッターである大櫛佑貴さんとTaKO8Kiさんに、知られざるRust開発の裏側とOSS活動に携わる魅力について聞きました。 * … 取材はリモートにて実施しました。 Rustに触れたきっかけ ――今回のインタビューでは、お二人のコントリビューターとしての活動内容を伺います。まずは、ユーザーとしてRustを書くようになったきっかけを教えてください。 大櫛:Rustとの出会いは2018年頃でした。私がま

                                                                                  Rustに貢献してみませんか?コントリビューターたちが語る開発の裏側とOSS活動の魅力 - Findy Engineer Lab
                                                                                • Rust でバイナリを配布する

                                                                                  これは天久保 Advent Calendar 2022 二日目の記事です。明日は休日なのでやすみです。 本記事は全部 GNU/Linux においての話で、ELF 実行可能形式のファイルのことを指してバイナリと呼びます。 Rust で書いたプログラムをビルドして配布したいことがあるでしょう。サーバーアプリケーションなどとなればコンテナイメージを配布するのがまっとうに思えますが、コマンドラインアプリケーションとなると実行の手軽さや起動オーバーヘッドへの配慮からやはりバイナリを配布する必要が出てくると思います。一方で Rust でビルドしたバイナリは[1]システムの glibc に動的リンクされており、可搬性が低い可能性があります。つまり、ビルドした環境より glibc のバージョンが低い環境でそのバイナリは動かない可能性があるということです。実例を見てみましょう。下のプログラム[2]は Deb

                                                                                    Rust でバイナリを配布する