タグ

Rustに関するpoad1010のブックマーク (1,318)

  • Parsing PDFs (and more) in Elixir using Rust

  • 「Rustで作って学ぶ分散合意アルゴリズムRaft」を書きたいという意思表明 | ドクセル

    Rustで作って学ぶ 分散合意アルゴリズム Raft を書きたいという 意思表明 2025/01/22 Osaki.rs #3 Yusuke Tanaka Who am I 米ジョージア工科大学のオンライン修士 課程に通いながらDeno Land Inc.で Deno Deployを作っています🦕 ← リアルで会った方にはもれなくこの名 刺をプレゼントGitHub: https://github.com/magurotuna 𝕏: https://x.com/yusuktan 🦋: https://bsky.app/profile/magurotuna.bsky.social mixi2: https://mixi.social/@magurotuna https://github.com/magurotuna https://x.com/yusuktan https://bsky

    「Rustで作って学ぶ分散合意アルゴリズムRaft」を書きたいという意思表明 | ドクセル
    poad1010
    poad1010 2025/01/27
    この記事をおすすめしました
  • RustベースのJavaScriptバンドラー「Rolldown」のβ版が公開、Rollup互換で10〜30倍の速度向上を達成

    RolldownはViteを手掛けるvoid(0)社が開発したもので、Rollup互換のAPIとプラグインインターフェースを提供しながら、機能範囲としてはesbuildに近いとされている。 Viteは、Vue.jsの開発者Evan You氏を中心に開発されたフロントエンド向けビルドツールで、ESモジュールを活用した高速な開発サーバーとして知られている。内部実装にはRollupなどを活用しており、開発時にホットリロードや依存関係の一括管理を高速に行える点が特徴だ。さらに、ビルドフェーズではesbuildなどを活用してトランスパイルやバンドリングを行ってきたが、今回のRolldownにより、それらを統合したより高速なビルドパイプラインの構築が期待されている。 Rollupはプラグインによる拡張性に優れたJavaScriptバンドラーとして広く使われており、ツリーシェイキングなどを通じて効率的な

    RustベースのJavaScriptバンドラー「Rolldown」のβ版が公開、Rollup互換で10〜30倍の速度向上を達成
  • Rust/Tauriに入門したので画像変換デスクトップアプリを開発してみた

    こんにちは!某製造業で新米DXエンジニアをしているものです。 先月から Rust の学習を始めました。 学習している理由としては 今までインタプリタ言語を使ってきたので、コンパイル言語に挑戦したい 爆速で動くコードを書きたい ネイティブアプリの開発をしてみたい WebAssembly を使えるようになって、Web アプリ開発の幅を広げたい といったところです。 そんな中、Rustデスクトップアプリを開発するために Tauri を使ってみました。 正月の暇をつぶすために軽い気持ちで始めましたが、色々苦しんだので備忘録を残しておきます。 今回は長くなりそうなので、目次をご活用ください m(._.)m アプリの概要 今回作ったアプリは、ざっくり言うと 主要形式の画像を次世代拡張子である AVIF,WEBP に圧縮、変換するデスクトップアプリです。⚡️ 制作期間は5~7日くらいです。 GitH

    Rust/Tauriに入門したので画像変換デスクトップアプリを開発してみた
    poad1010
    poad1010 2025/01/26
    この記事をおすすめしました
  • 【海外記事紹介】Rustでプロトタイピングを高速に反復するための実践的なガイド

    こうした所有型はほとんどの所有権・ライフタイム問題を回避できるが、その代わりメモリをヒープに確保する。一方で、後から必要に応じて最適化できるので、最初のうちはパフォーマンスをあまり気にしなくてもいい。 型推論を活用する Rustは静的で強い型付けの言語だが、型推論のおかげで常にすべての型を明示しなくても済む。以下のように、型はコンテキストから推論される。 let x = 42; let y = "hello"; let z = vec![]; 最初に素早くコードを書く段階では型を省略し、後から必要に応じて追記できる。複雑な型にも対応できるので、大規模プロジェクトでもこの方法は有効だ。 let x: /* 省略 */ = vec![]; let y: /* 省略 */ = vec![]; let z = x.into_iter().chain(/* 省略 */); より複雑な例としては以下の

    【海外記事紹介】Rustでプロトタイピングを高速に反復するための実践的なガイド
    poad1010
    poad1010 2025/01/17
    この記事をおすすめしました
  • 【海外記事紹介】これから始める人向けのRust情報総まとめ

    1月16日、海外テクノロジーメディア「The New Stack」が「Introduction to Rust Programming Language」と題した記事を公開した。この記事では、Rustプログラミング言語の概要と主要な特徴、および導入方法について詳しく紹介されている。以下に、その内容を紹介する。Rustプログラミング言語とはRustは、安全性・速度・並行性を重視するプログラミング言語である。2006年にGraydon Hoare氏の個人プロジェクトとして始まり、2010年にMozilla Researchの支援を受けてウェブブラウザ開発を目指す言語として注目を集めた。実行時のガーベジコレクタに頼らず、コンパイル時の所有権システムによってメモリの安全性を維持する点が大きな特徴である。 1月16日、海外テクノロジーメディア「The New Stack」が「Introducti

    【海外記事紹介】これから始める人向けのRust情報総まとめ
    poad1010
    poad1010 2025/01/17
    この記事をおすすめしました
  • 【海外記事紹介】Rustで書かれ、WebAssemblyで動作するフロントエンドフレームワーク「Leptos」が注目を集める — Reactライクな書き心地と圧倒的なパフォーマンスを実現

    1月14日、The New Stackが「Want a Web Framework for Rust, Not JavaScript? Try Leptos」と題した記事を公開した。この記事では、Rustフレームワーク「Leptos」やWebAssemblyWasm)を活用したWeb開発の最新動向について詳しく紹介されている。 以下に、その内容を紹介する。 Leptosとは Leptosは、Rustで書かれたフレームワークをWeb Assembly経由でWebアプリとして高速かつインタラクティブに動作させる仕組みを提供するものである。公式サイトによれば、主要なフロントエンドフレームワーク(VueSvelteReactなど)と比較して優れたパフォーマンスを持ち、バニラJavaScriptに迫るとされている。以下はLeptos公式サイトで公開されているベンチマークの一例である。 Lept

    【海外記事紹介】Rustで書かれ、WebAssemblyで動作するフロントエンドフレームワーク「Leptos」が注目を集める — Reactライクな書き心地と圧倒的なパフォーマンスを実現
    poad1010
    poad1010 2025/01/15
    この記事をおすすめしました
  • RustでのProtocol Buffersを学習するための図書管理システム実装 - じゃあ、おうちで学べる

    はじめに Protocol BuffersとRustの実践的な学習を目的として図書管理システムを開発しました。 システムの構築にあたってはBufによるスキーマ管理とコード生成を採用することで開発環境を実現しています。今回の実装を通じてRustにおけるgRPCサービスの構築手法について理解を深めることができました。 buf.build フロントエンド開発については今後の課題として検討しています。 Remixが気になっているので実装したいと思ってます。記事ではバックエンド実装に焦点を当てて解説します。 特にRustのエコシステムにおけるtonicやSQLxといったライブラリの活用方法に着目します。これらの実装を通じて得られた知見は他のRustプロジェクトにも応用可能な内容となっています。 学習目的で実装したコードなので何かに活用していただければ幸いです。 github.com プロジェクト

    RustでのProtocol Buffersを学習するための図書管理システム実装 - じゃあ、おうちで学べる
    poad1010
    poad1010 2025/01/11
    この記事をおすすめしました
  • 月刊「Rustは低レイヤーで使ってもunsafeだらけになるから意味がない」廃刊のお知らせ

    組込みRustや自作OSなどにおいて、従来言語より高い安全性があるとされているRustは注目される一方、Rustでも低レイヤー分野で頻発するメモリアクセスやインラインアセンブラなどでunsafeブロックが存在が多くなりがちです。 このunsafeブロックが多くなるので、結局Rustでこのような低レイヤー分野を触っても意味がないのでは?安全ではないのでは?という疑問が投げかけられることがしばしばあります。 筆者はTwitterや過去のブログで、組込みRustにおいてのunsafeとの付き合い方について触れていきましたが、内容としては分散していたので今一度この疑問に対するアンサーをまとめることにし、この論争に終止符を打とうと思います。 Rustにおけるunsafeとは そもそもunsafeとは何かというのはThe Rust Programming Languageのドキュメントにも詳しく書かれ

    月刊「Rustは低レイヤーで使ってもunsafeだらけになるから意味がない」廃刊のお知らせ
    poad1010
    poad1010 2025/01/08
    この記事をおすすめしました
  • AI時代にこそRustだと思う話

    はじめに 記事は AI時代にこそTDDだと思う話 https://zenn.dev/akfm/articles/tdd-with-copilot をパクってオマージュしてタイトルをつけたが、特にそれには言及しない。 記事はRustを好きで使用している人間が書くポジショントークということを前提に読んでほしい。また、現状でRustを選択するべきだという主張をする記事ではなく、長期的に見るとRustAIの組み合わせは親和性が高くなるのではないかという個人的予想を記載しているのみである。 記事は自分用に雑に書いていた箇条書きメモをo1と対話しながら人に見せられる構造にまとめたものであり、文章構成に不自然な点が残っているかもしれない。 背景: AIの発達とプログラム責任の問題 昨今はAIによるプログラム生成の力に拍車がかかっている。いまやAIがあれば、品質度外視ではあるが素人でもコードを生成

    AI時代にこそRustだと思う話
    poad1010
    poad1010 2025/01/08
    この記事をおすすめしました
  • Rustプロジェクトのビルド高速化に関するベストプラクティス(ローカル環境編)

    Windows環境については試していませんが、同様の効果が期待できそうです。特にWindows Subsystem for Linux 2(WSL2)やDocker Desktopを使っている場合は、この記事のLinux向けの内容をそのまま適用できます。 まずは計測 ビルド時間の削減に入る前に、現在のビルドにかかっている時間を計測し、何に時間がかかっているのかを把握しましょう。そうすることで後の改善効果がはっきりしますし、もし、記事の例とは状況が異なる場合でも適切な対応を取れるかもしれません。 cargo buildやcargo testに--timingsオプションを追加することで、個々のクレートのビルドにかかった時間を計測し、視覚化できます。 フルビルドにかかる時間を計測する ここで言うフルビルドとは、cargo cleanを実行したあとの何もない状態からビルドし直すことです。これに

    Rustプロジェクトのビルド高速化に関するベストプラクティス(ローカル環境編)
    poad1010
    poad1010 2025/01/08
    この記事をおすすめしました
  • [Rust] 自作言語での TUI デバッガのススメ

    Rust で作るプログラミング言語シリーズです。 バイトコードコンパイラの難しさ 書籍での心残りの一つが、第6章のバイトコードの難易度です。書ではプログラミング言語を作るにあたってステップ・バイ・ステップで難易度を上げていくように構成を考えていますが、第6章のバイトコードの実装の時点で難易度が急激に上昇します。例えば、次のようなジャンプアドレスの計算を行う必要があるのですが、これはかなり込み入ったロジック計算が必要になります。 条件分岐では、下図のようにジャンプしますが、このアドレス計算が厄介です。 ループについても同じくジャンプ命令が必要ですが、こちらはループの先頭にアドレスを戻します。 この実装の難しさは、プログラムの意味を理解する(意味論)ロジックと、それをバイトコードへ変換するロジックを一つとしてデバッグしなくてはならないところにあります。どちらに問題があるかを切り分けるのは簡単

    [Rust] 自作言語での TUI デバッガのススメ
  • RustとSvelteで開発されたオープンソースのmacOS用システムモニタアプリ「NeoHtop」がリリース。

    RustSvelteで開発されたオープンソースのmacOS用システムモニタアプリ「NeoHtop」がリリースされています。詳細は以下から。 macOSのシステムで実行されているプロセスを確認する際、システムモニタアプリ以外にターミナルでhtop(top)コマンドを利用することがありますが、このhtopコマンドをRustSvelte、TauriでGUI実装したシステムモニタプリ「NeoHtop」が新たにリリースされています。 A beautiful, lightning-fast system monitor built with Rust and Svelte. Experience real-time performance monitoring like never before. Abdenasser/neohtop: 💪🏻 htop on steroids – GitHub

    RustとSvelteで開発されたオープンソースのmacOS用システムモニタアプリ「NeoHtop」がリリース。
  • Rustで実装するLinuxカーネル(アセンブリ言語編)

    「安全よりもスリルを!」 メモリ安全性のために、LinuxカーネルモジュールはRustで実装すべし、と世間に大声で訴えているけれど、当はちょっと物足りない…危険に惹かれてしまう、そういう秘めた自分の気持ち、大切にしたいですよね! 今回は、いかなる安全性も保証しないアセンブリ言語とRustを組み合わせて、Linuxカーネルの機能を実装してみました。 アセンブリ言語?「アセンブリ言語、何それ?」と思ったデジタルネイティブ世代の読者も大勢いることでしょう。CやRustのような高級プログラミング言語では、人間が理解しやすい型や構文などを使った記述形式をコンパイラを使って、CPUが実行できる形式へと翻訳します。一方、アセンブリ言語では、CPUが実行できる形式に限りなく近い記述形式を使います。自分の気持ちをインスタやLINEのメッセージで伝えるのは難しいですよね?アセンブリ言語はCPUへ直接気持ちを

    Rustで実装するLinuxカーネル(アセンブリ言語編)
    poad1010
    poad1010 2024/12/29
    この記事をおすすめしました
  • RealWorld 業務 Rust - Qiita

    RealWorld 業務 Rust 実際に Rust 1.0 の頃から業務で Rust を使ってコードを保守してきてハマった落とし穴についての 知見 恨み言です Rustが素晴らしい言語であるというあたりまえのことにはこの文書では触れません 気が向いたら追加します 開発環境編 ビルドマシンを買ってもらえ ノートパソコンのCPUとメモリでは限界がある CPU 二桁コアのマシンを何人かで共有して使え VSCode の Remote SSH でがんばれ vim でもいいぞ ストレージは可能な限りデカくしろ target はブラックホール 10GB 超はあたりまえ、中には 100GB 超も sccache、 cargo cache 、 cargo sweep などを駆使してがんばれ docker も使うので大容量ストレージだけが正義だ sccache 使用例

    RealWorld 業務 Rust - Qiita
  • React・Node.js・CloudflareWorkersでRustから作成したWASMを動かす - iimon TECH BLOG

    こんにちは!iimonでCTOをしているもりごです。 記事はiimon Advent Calendar 2024最終日の記事となります! 今年はふるさと納税で沖縄に沢山寄付をしたので、沖縄の名産品をべるのが毎日の楽しみとなっています。 今回、フロントエンド・サーバーサイド・エッジコンピューティングの3つの環境でWASMWebAssembly)を活用し、同じ処理を別の環境で動かす方法を試してみました。複数の環境で共通の処理を使う事ができれば、同じコードを複数の環境に記述する必要がなくなり、管理の煩雑さを軽減できると考えて試してみました。 例えばフォームのバリデーションのように、フロントエンドとサーバーサイドの両方で同じ処理が必要になるケースはよくあると思っています。弊社は不動産領域を扱っており、住所関連の処理で色々な場所で同じ処理が必要になることが多々ありました。これまでは、なるべく1

    React・Node.js・CloudflareWorkersでRustから作成したWASMを動かす - iimon TECH BLOG
    poad1010
    poad1010 2024/12/26
    この記事をおすすめしました
  • Rustでライフゲームを作ってみた | DevelopersIO

    ゲームソリューション部の えがわ です。 今回はRustをとりあえず触ってみる目的でライフゲームを作成してみました。 ライフゲームとは? グリッド状のマス目にセル(細胞)を配置し、いくつかの簡単なルールに従って世代を繰り返していきます。 セルは「生きている」か「死んでいる」かの2状態があり、周囲のセルに影響されながら新たな形を生み出します。 見るだけで楽しいアニメーションが作れたり、予測不能なパターンが生まれるので、プログラミング勉強での面白い題材となっています。 完成系 ライフゲームのルール ライフゲームはルールが決まっています。 誕生:死んでいるセルの周囲にちょうど3つの生きたセルがあれば、そのセルは次の世代で「生」へと変わります。 生存:生きているセルの周囲に2つまたは3つの生きたセルがあれば、そのセルは次の世代でも「生」のままです。 過疎:生きているセルの周囲に1つ以下の生きたセル

    Rustでライフゲームを作ってみた | DevelopersIO
    poad1010
    poad1010 2024/12/24
    この記事をおすすめしました
  • Rustで有名アルゴリズムに挑戦(24) Rustで効率的なFisher–Yatesシャッフルを実装してみよう

    Rustで有名アルゴリズムを実装して、Rustについての理解を深めることが目的の連載です。今回扱うのは、配列のシャッフルについてです。最初に何も考えずに実装してみて、次に効率的に配列の要素をシャッフルするFisher–Yatesシャッフルを実装してみましょう。 Fisher–Yatesシャッフルを実装してみよう コンピューターにとって適当にシャッフルは難しい コンピューターは、人間よりも計算も速く正確に動いてくれるものですが、意外なことが苦手だったりします。そんな苦手なことの一つが「適当にシャッフルする」という作業です。 そもそも計算によって乱数を生成するのは簡単なことではありません。それで、さまざまな乱数生成アルゴリズムが提案されています。また、現在時刻やマウスの移動など、さまざまな物理現象を利用して、乱数生成を行う手法もあります。「適当さ」をコンピューターで再現するのは難しいものなので

    Rustで有名アルゴリズムに挑戦(24) Rustで効率的なFisher–Yatesシャッフルを実装してみよう
    poad1010
    poad1010 2024/12/24
    この記事をおすすめしました
  • Rust使用者がHaskellを学んだ感想 - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? Rustは多くの言語に影響を受けており、C++のほか、OCamlやHaskellといった関数型言語の影響も受けています (参考: The Rust Reference - Influences)。 私はC++からRustに入りましたが、関数型言語を使った経験はありません。せっかくRustを学んだのだから、その影響元である関数型言語についても学んでみたいと思いました。 関数型言語を学ぶならHaskellだろうということで、以下の書籍を参考に触れてみました。その感想を記します。 参考書: プログラミングHaskell 第2版 (出版: ラム

    Rust使用者がHaskellを学んだ感想 - Qiita
    poad1010
    poad1010 2024/12/23
    この記事をおすすめしました
  • Rust初心者が適当に書いても動いてしまうコードの書き方とより良い書き方を考えてみる

    この記事は Rust Advent Calender 2024 の 11 日目の記事です。 こんにちは。NTT コミュニケーションズの @ucchy です。普段は SkyWay という WebRTC プラットフォームの開発や WebRTC リサーチャーをしています。 記事の背景 私は、2024 年に入ってから Media over QUIC Transport のプロトコル実装(moq-wasm)を Rust で書き始めました。PythonTypeScript の経験はあるものの、Rust は初めてだったため、多くの点で「良くない」コードを書いてしまいました。 1 年間 Rust を書いていて、少しずつ「より良い書き方」も分かってきたので、「とりあえず動いてしまう書き方」と自分が考える「より良い書き方」をまとめてみたいと思います。 「とりあえず動いてしまう書き方」と「より良い書き方」

    Rust初心者が適当に書いても動いてしまうコードの書き方とより良い書き方を考えてみる
    poad1010
    poad1010 2024/12/17
    この記事をおすすめしました