タグ

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

  • AIの時代だからこそ、型システムがより厳格な静的型付け言語(GoやRustなど)が良いのでは?という話

    はじめに CursorのようなAIのコードエディタがめちゃくちゃ進化してきている、こんな時代だからこそ静的型付け言語、特に厳格な静的型付け言語であるRustとの相性が良いのでは?という話をポエム的に書いてみます。 この記事ではあえてRustに特化して比較や検討をしているのは、個人的な好みの問題です笑 今の現場では静的型付け言語であるTypeScriptを使っているけど、厳格な静的型付け言語ではないし、実装されているコードも現場や人によって異なることが多くて、AIと共創していくことを考えたときにベターな言語があるんじゃないかって思ってつらつら書いてみます。 (TypeScriptって当に十人十色なコードができてしまうから悩ましいw) 一方で、TypeScriptは型安全じゃないからすばらしいという意見もあるので、あくまでポエム的な内容であるということはご理解ください。 TypeScript

    AIの時代だからこそ、型システムがより厳格な静的型付け言語(GoやRustなど)が良いのでは?という話
    poad1010
    poad1010 2025/05/15
    この記事をおすすめしました
  • A Rust Documentation Ecosystem Review

    Photo by Guillaume Piolle. I’ve been thinking about documentation lately. Anecdotally, documenting code is somehow one of the least favorite things programmers do. when developing. However, it is undeniable that documentation is essential when it comes to teaching beginners. In fact, one of the most typical ways people can begin their journey in programming is by following a YouTube video tutorial

    A Rust Documentation Ecosystem Review
    poad1010
    poad1010 2025/05/12
    この記事をおすすめしました
  • Rust製リンターOxlint徹底解説|ESLint比最大100倍の高速化と導入法 | しんすーブログ

    Rust製リンターOxlint徹底解説|ESLint比最大100倍の高速化と導入法 2025年3月15日、Rust製ツールチェーンOxcはESLint互換リンターOxlintのベータ版を正式公開しました。 参考:https://oxc.rs/blog/2025-03-15-oxlint-beta 発表時点で500超のルールを標準搭載し、小規模リポジトリではESLint比で最大100倍近い速度向上が報告される一方、大規模プロジェクトでは2〜5倍の短縮が一般的で、実用性と性能の両立が注目されています。 ベータ版はGA版(0.15系)からルール数を約2.5倍に拡充しつつ、パフォーマンスをほぼ2倍へ引き上げました。 参考:https://oxc.rs/docs/guide/benchmarks この記事ではベンチマークの詳細、導入手順、競合ツール比較、コミュニティの活発度、移行リスクまで網羅的に整

    Rust製リンターOxlint徹底解説|ESLint比最大100倍の高速化と導入法 | しんすーブログ
  • Rust製AT Protocolライブラリ「ATrium」をorganizationに移管した - すぎゃーんメモ

    作りはじめた記事を書いてから約2年が経った。 memo.sugyan.com 開発を続けてきたRustライブラリ ATrium を、先日ついにorganizationに移管した。 github.com 経緯 昨夏からAT Protocolの OAuth に対応する実装を進めていたものの、プライベートの事情などもあってなかなか順調には進まなかった。何度かPull Requestをもらって実装方針を議論したりもしたが、進捗は芳しくなかった。 @erlend-sh 氏からDiscordで「organizationに移管したらどうか?」とアドバイスを受けたこと、また自分自身も継続的な開発・メンテナンスを強い意志で続けていける自信が持てなかったこともあり、前向きに検討を始めた。 そして先日ようやく atrium-oauth をリリースしたところで一区切りとし、自分の個人repositoryからorg

    Rust製AT Protocolライブラリ「ATrium」をorganizationに移管した - すぎゃーんメモ
    poad1010
    poad1010 2025/05/04
    この記事をおすすめしました
  • 同期Rustと非同期Rustで同じものを作るとどれくらい実装が変わるのか - Don't Repeat Yourself

    同期Rustと非同期Rustの書き心地や使い心地の違いがRustのAsync WGでも課題として挙げられており、目下できるかぎり近づける取り組みが進行中です。詳しいところはRustが最近運用しているProject Goalsの非同期Rustに関する部分を参照してください。ここを見ると、概ね現状抱えている課題などが見えてくると思います。 理想を言えば、std::ioやstd::netではじまるものを、たとえばtokio::ioやtokio::netに書き換え、必要な箇所にasyncと.awaitを付与していくだけで作業が完結してほしいところではあります。他の多くのプログラミング言語では、ままそのようにするだけで済むものが多い印象を持っています。たとえば、私が業務で使用するKotlinが実際にそうで、suspendをつけるだけでほとんどの処理を楽に非同期化することができます。もちろんKotli

    同期Rustと非同期Rustで同じものを作るとどれくらい実装が変わるのか - Don't Repeat Yourself
    poad1010
    poad1010 2025/04/22
    この記事をおすすめしました
  • Two Years of Rust

    I recently wrapped up a job where I spent the last two years writing the backend of a B2B SaaS product in Rust, so now is the ideal time to reflect on the experience and write about it. Contents Learning The Good Performance Tooling Type Safety Error Handling The Borrow Checker Async Refactoring Hiring Affect The Bad The Module System Build Performance Mocking Expressive Power Learning I didn’t le

  • 【海外記事紹介】Rustを2年使ってみて感じたこと

    4月16日、Borretti氏が「Two Years of Rust」と題した記事を公開し、注目を集めている。この記事では、Rustを用いた2年間の開発経験の振り返りとRust言語の特徴について詳しく紹介されている。 4月16日、Borretti氏が「Two Years of Rust」と題した記事を公開し、注目を集めている。この記事では、Rustを用いた2年間の開発経験の振り返りとRust言語の特徴について詳しく紹介されている。 以下に、その内容を紹介する。 この記事では、大きく「良い点(The Good)」と「悪い点(The Bad)」に分けてRustの特性が語られている。 The Good Rustの良い点として、筆者は以下を挙げている。 パフォーマンス(Performance) Rustは高速に動作する。どの言語でも低速なコードを書くことは可能だが、Rustはボトルネックを取り除け

    【海外記事紹介】Rustを2年使ってみて感じたこと
  • 【Rust】【Java】非同期のユースケースとコード - Qiita

    // ✅ 非同期が必要な15の代表ユースケース + 最小コード例 // 1. Web API ハンドラー(axum) use axum::{routing::get, Router}; async fn api_handler() -> &'static str { "Hello, async API" } fn app() -> Router { Router::new().route("/", get(api_handler)) } // 2. 複数リクエストを同時処理(tokio::spawn) #[tokio::main] async fn main_spawn() { for i in 0..3 { tokio::spawn(async move { println!("Task {} start", i); }); } } // 3. 外部API呼び出し(reqwest) #[

    【Rust】【Java】非同期のユースケースとコード - Qiita
    poad1010
    poad1010 2025/04/14
    この記事をおすすめしました
  • Rust入門者は非同期Rustをやらないでください

    はじめに すいません、連日の記事があったため少し煽りっぽいタイトルにしてしまいました。 平常時の感覚だったら、「Rustに入門するなら、同期Rustから始めるのがおすすめ」 とかにしてた記事だと思います。 この記事で主張したいことは以下です。 Rustは難しい Rustに入門するときの題材に、"Web Backend"や"Wasmでブラウザで動く何か"などの非同期Rustで無ければ達成できない題材を採用している人はそれがRust初級者への道を阻んでいる可能性がある 過去に非同期Rustで入門した人を否定する記事ではない Rustに入門することが目的なら、非非同期Rustから始めた方が良いのではないか? ここで長く言葉の定義をしても微妙なので、下に言葉の定義 というセクションを用意してあります。 前提 タイトルに書けていない前提を書いています。 この記事の指す「Rust入門者」はLL言語(P

    Rust入門者は非同期Rustをやらないでください
    poad1010
    poad1010 2025/04/14
    この記事をおすすめしました
  • 「Rustが嫌いです。」の感想

    この記事を読んで1Rustユーザーとして思ったことを書いた。 全体を通して WASM固有の問題にハマってしまっている Rustをスクリプト言語と同じ枠で見てしまっている の2点が辛さの原因であると感じた。 前者について、この方はフロントエンドRustを使っているようだがここは確かに整備が行き届いてない分野でWASM特有の問題とJSとのFFIの辛さがもろに感じられて辛いと思う。 割となんでもかんでもRustを使う自分であってもWebフロントエンドにはおとなしくTSを使うようにしている(ただ、dioxusはホットリロードを開発中だったりと結構頑張っているようなのでいつかはRustフロントエンドも現実的になるかもしれない)。 後者について、この記事では全体的に「JSやPythonではこんなに簡単だったのにRustでは難しい/エラーが出る」という評価が多いが、これは後述するようにRustが提供

    「Rustが嫌いです。」の感想
    poad1010
    poad1010 2025/04/10
    WASM固有の問題か。 確かにWASMはほぼノータッチでWebアプリとかCLIを作るのが中心だから、確かにそこは認識が合わないのは確かだな。 Webアプリだからってメモリー安全性が要らないというのは間違い。GCのおかげでメモリ
  • 【海外記事紹介】Webフロントエンド開発の新たな潮流となるか?Rust+WebAssemblyを使用する動きが加速中 — Amazon Prime Videoにおいて7.6倍のUIレイテンシ削減

    【海外記事紹介】Webフロントエンド開発の新たな潮流となるか?Rust+WebAssemblyを使用する動きが加速中 — Amazon Prime Videoにおいて7.6倍のUIレイテンシ削減
    poad1010
    poad1010 2025/04/10
    この記事をおすすめしました
  • Rustが難しい唯一の理由

    覚えることが多い 初心者の主観ですがRustが難しい理由はこれに尽きると思います。初心者の感想として覚えることの多さについて書いていきます。 ちなみに、覚えることは多いですが、全部覚えなくても全然やっていけますし、見返りは大きいのでそのことについても書きます。 メモリ管理が難しい? よくRustが難しい理由として真っ先にに挙げられるのがメモリ管理です。しかし、これは実はそうでもないということが使い始めると分かってきました。 というのも、Rustの特徴である所有権とか借用とかライフタイムとかはメモリ管理を意識しなくてもいいようにするためのガーベージコレクションに代わる仕組みなのです。例えば私のようにWebフレームワークを使ってWebサーバーを立てるような型にはまったプログラミングを行うときは、ほとんど意識する必要がありません。 独自の言語仕様が多い 先に書いたメモリ管理だけでなく、エラー処理

    Rustが難しい唯一の理由
    poad1010
    poad1010 2025/04/09
    とても同意。 メモリー管理というか、スタックとヒープとそれらの生存期間というのは、本気で速いアプリを書く場合には抑えておかないとならない部分なので、ランタイム(GC)のおかげで手抜きができる言語とは違うって
  • A Year of Rust in ClickHouse

    poad1010
    poad1010 2025/04/09
    この記事をおすすめしました
  • Rustが嫌いです。

    0. 前書き - リモートデスクトッププロジェクトとの悲しき邂逅 私がremote-desktop-rsというクロスプラットフォームのリモートデスクトッププロジェクトを始めたとき、Rustの評判を信じていた。「メモリ安全性とパフォーマンスの素晴らしい組み合わせ」「優しいコンパイラエラー」「素晴らしいエコシステム」——当にそうだったのか? 1. 学習曲線は「少し急」ではなく「エベレスト級」 「所有権の概念を理解すれば、あとは簡単です」と言われ続けた。嘘だ。絶対に嘘だ。 1.1 所有権地獄 私はcommon/src/lib.rsで単純な「ビルド情報」構造体を作成しようとした: // 素晴らしい所有権システムと戦った結果の姿 pub fn build_info() -> BuildInfo { let build_date = chrono::Local::now().format("%Y-%

    Rustが嫌いです。
    poad1010
    poad1010 2025/04/09
    本来のコンピューティングそのものの難しさであって、GoやPythonみたいに高度なランタイムによって手抜きして知らないまま使えてしまうというのを避けられるから、安全に使えるという側面が強いのだがな。 コンパイラ
  • 安全と言われるRustの落とし穴 - Qiita

    Rustは「安全な言語」として知られています。特にメモリ安全性の面では優れた言語設計が施されていますが、それだけですべての問題が解決するわけではありません。コンパイラは多くのバグを捕捉してくれますが検出できない落とし穴も存在します。 上記の記事にRustで安全なコードを書く際によく遭遇する落とし穴と、それらを避けるためのベストプラクティスが非常によくまとまっていました。いくつか紹介します。 Rustコンパイラが検出できない問題の種類 Rustのコンパイラは優秀ですが、以下のような問題は検出できません: 数値型の変換ミスによるオーバーフロー ロジックのバグ unwrapやexpectの使用による意図しないパニック サードパーティクレートの問題のあるbuild.rsスクリプト 依存ライブラリの不適切なunsafeコード 競合状態 それでは、よくある落とし穴とその対策を見ていきましょう。 1.

    安全と言われるRustの落とし穴 - Qiita
    poad1010
    poad1010 2025/04/07
    良い記事なんだけど、どれも他の言語でも容易に起こる話であって、Rustでも clippy で指摘してくれたりはするって程度の話なんだよな。 それでも、ツールチェーンで指摘してくれるし、プログラミングの難しい部分を、少
  • RustのAnyを解説:リフレクションなしの型内省 - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 前書き Rust がランタイムリフレクション(実行時リフレクション)を導入しない理由については、以下の RFC を参考にできます: 要点をまとめると、次のようになります: DI(依存性注入)は必ずしもリフレクションを使って実現する必要はなく、Rust にはより優れた実装方法がある; 派生マクロと Trait の組み合わせにより、実装をランタイムからコンパイル時に移行できる; 例えば、プロシージャルマクロを用いて、依存性注入などのリフレクション機能をコンパイル時に実現する:https://github.com/dtolnay/reflec

    RustのAnyを解説:リフレクションなしの型内省 - Qiita
  • Rustのトレイトとトレイト境界を理解する - Qiita

    Trait は他のプログラミング言語で一般的に「インターフェース(interface)」と呼ばれる機能に似ていますが、いくつかの違いがあります。Trait は特定の型が他の型と共有できる機能を持つことを Rust コンパイラに伝えます。Trait を使用することで、共通の動作を抽象的な方法で定義できます。Trait Bound を使えば、ジェネリック型が特定の動作を持つ型であることを指定できます。 簡単に言えば、Trait は Rust におけるインターフェースであり、ある型がそのインターフェースを使用する際の動作を定義するものです。Trait を使えば、複数の型間で共通の動作を制約でき、ジェネリックプログラミングの際にはジェネリック型が Trait で定義された動作に従うよう制限することも可能です。 Trait の定義 異なる型が同じ動作を持つ場合、Trait を定義して、それらの型に対

    Rustのトレイトとトレイト境界を理解する - Qiita
  • 【海外記事紹介】なぜTypeScriptはGoで書き直されたのか?C#やRustじゃない理由は?

    3月19日、海外テクノロジーメディアThe New Stackが「Microsoft TypeScript Devs Explain Why They Chose Go Over Rust, C#」と題した記事を公開した。この記事では、TypeScriptコンパイラをGoへ移植した背景や、その理由について詳しく紹介されている。 3月19日、海外テクノロジーメディアThe New Stackが「Microsoft TypeScript Devs Explain Why They Chose Go Over Rust, C#」と題した記事を公開した。この記事では、TypeScriptコンパイラをGoへ移植した背景や、その理由について詳しく紹介されている。 以下に、その内容を紹介する。 先ごろMicrosoftは、TypeScriptのコンパイラを新たなプログラミング言語であるGoに 移植す

    【海外記事紹介】なぜTypeScriptはGoで書き直されたのか?C#やRustじゃない理由は?
  • Rust製MCPライブラリの内部実装を徹底解析 - じゃあ、おうちで学べる

    はじめに 最近注目を集めているModel Context Protocol(MCP)は、大規模言語モデル(LLM)に外部ツールやサービスへのアクセス能力を提供するための標準プロトコルです。中でも公式が提供しているRust SDKはあまり注目されていませんが、私自身が必要としているためこのドキュメントを作成します。 github.com 以前は自前で実装していましたが、公式SDKが公開されたことでそちらを検討するのが良いと考えました。私の実装と比較してかなり洗練されている点が多く、多くの学びを得ることができました。 syu-m-5151.hatenablog.com この記事では、MCP Rust SDKの内部実装を深掘りし、どのようにRustの強力な型システムと非同期プログラミングモデルが活用されているかを解説します。コードの詳細な分析を通して、Rustの優れた設計パターンや実装テクニック

    Rust製MCPライブラリの内部実装を徹底解析 - じゃあ、おうちで学べる
    poad1010
    poad1010 2025/03/28
    この記事をおすすめしました
  • 【実践編】今すぐ使えるAI技術の最先端プラットフォーム完全ガイド| [第10回] PythonとRustのAIアプリ開発比較 - Qiita

    近年、AIアプリケーション開発においてPythonRustの選択肢が注目されています。記事では、PythonRustAI開発における特徴、利点、欠点、および実際のユースケースについて詳しく解説します。 1. PythonRustの概要 1.1. Pythonとは? Pythonは、シンプルな構文と豊富なライブラリを備えた高水準プログラミング言語です。AIやデータサイエンス分野で広く利用されています。 メリット: 豊富な機械学習AIライブラリ(TensorFlow, PyTorch, Scikit-learn) コードの可読性が高く、学習コストが低い Jupyter Notebookを利用したインタラクティブな開発が可能 デメリット: 実行速度が遅い(インタプリタ言語のため) GIL(Global Interpreter Lock)の影響で並列処理が制限される 1.2. Rust

    poad1010
    poad1010 2025/03/26
    この記事をおすすめしました