タグ

Rustに関するMagicantのブックマーク (30)

  • GitHub - davidlattimore/wild: A very fast linker for Linux

    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 - davidlattimore/wild: A very fast linker for Linux
    Magicant
    Magicant 2025/01/26
    Mold より速い(ことが多い) Rust 製リンカー
  • Fish 4.0: The Fish Of Theseus

    About two years ago, our head maintainer @ridiculousfish opened what quickly became our most-read pull request: #9512 - Rewrite it in Rust Truth be told, we did not quite expect that to be as popular as it was. It was written as a bit of an in-joke for the fish developers first, and not really as a press release to be shared far and wide. We didn’t post it anywhere, but other people did, and we go

  • 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
    Magicant
    Magicant 2024/12/28
    仕事で本格的に Rust を使ってる人の意見の一つとしては参考になるが、読みにくさに対する嘆きはその原因が本人の無理解や技量不足による可能性を差し引いて読んだ方が良い
  • RustでWeb開発コソコソ噂話

    下記に登壇した際の資料です。 https://findy.connpass.com/event/331621/ スライドはメモ書き程度のものとなっており、実際には講演の中で口頭で数多くの補足が入っています。講演の内容をまとめた記事も近日公開される予定なので、あわせてご覧ください。

    RustでWeb開発コソコソ噂話
  • iOS/Androidに対応した「Tauri 2.0」が公開 ~「Rust」が使えるアプリフレームワーク/「Swift」「Kotlin」など、モバイルOSネイティブ言語にも対応

    iOS/Androidに対応した「Tauri 2.0」が公開 ~「Rust」が使えるアプリフレームワーク/「Swift」「Kotlin」など、モバイルOSネイティブ言語にも対応
  • 『RustによるWebアプリケーション開発 設計からリリース・運用まで』という本を共著で書きました - Don't Repeat Yourself

    RustのWebアプリケーション開発に関する書籍を共著で執筆しました。1年くらい執筆していましたが、出版時期などが定まってきたので内容の紹介を込めて告知の記事を書きます。9/26刊行予定です。予約よろしくお願いします。 RustによるWebアプリケーション開発 ↓AmazonのURL(アフィリエイトなし) www.amazon.co.jp 数年前に書籍を執筆した際に、「次はWebアプリケーションの実装に関するを書きたい」と記事に書き残していたのを今見つけたのですが、有言実行できたようです。 どんなか? Rustってバックエンド開発に向いてるの? 著者について 目次とトピックの簡単な紹介 はじめに 第1章 書で開発するアプリケーション 第2章 開発環境の構築 第3章 最小構成アプリケーションの実装 第4章 蔵書管理サーバーアプリケーションの設計 第5章 蔵書管理サーバーの実装 第6章

    『RustによるWebアプリケーション開発 設計からリリース・運用まで』という本を共著で書きました - Don't Repeat Yourself
  • GopherがRust入門したので違いをまとめてみた

    はじめに ウホウホ。 Rustを使い始めてちょうど2年くらい経って、すこしRustのことがわかってきたので、改めてGoRustのそれぞれの違いを整理したいなと思いこの記事を書きました。 筆者はウェブ開発の経験しかないので、ウェブを中心にまとめています。 気づいたらかなりな量になってしまったのとGopher向けにRustを紹介するような記事になってしまいましたが、よければ読んでみてください。 筆者について Goを使い始めて7年ほど経っていて、これまでCLI/TUIツールをいくつか作ってきました。 スペシャリストではないですが、プロダクトでGoを書く分には特に問題ないレベルかなと思います。 Rust2022年夏ころから使い始めてちょうど2年ほど経ちました。 なにかツールを作ったわけではないですが、勉強がてらにいくつか作ったもの・書いたがあります。 普通にRustを書く分には問題ないですが

    GopherがRust入門したので違いをまとめてみた
  • https://ceronman.com/2024/05/28/types-and-self-documenting-code-in-rust/?s=09

    Magicant
    Magicant 2024/06/03
    Chars と言はれただけではそれが文字の列挙子であることが解らんといふのは事実だが、そこで CharIter みたいなくどい命名をしないのが Rust の美徳だと自分は思ふので、慣れるしかないんぢゃないかな的な
  • LogLog Games

    The article is also available in Chinese. Disclaimer: This post is a very long collection of thoughts and problems I've had over the years, and also addresses some of the arguments I've been repeatedly told. This post expresses my opinion the has been formed over using Rust for gamedev for many thousands of hours over many years, and multiple finished games. This isn't meant to brag or indicate su

    Magicant
    Magicant 2024/04/28
    まあ、設計力の足りない人にはツラい言語だらうなとは思ふ
  • RustでWeb APIを作る際のエラーハンドリング - CADDi Tech Blog

    TL;DR エラーハンドリングを行う目的 エラーハンドリングが適切に行われているとどう嬉しいか 1. エラーの発生原因が分かる 2. レスポンスステータスを型安全に出し分けることが可能になる どうエラーハンドリングを行うのか 実装方法 エラー型の定義で気を付けるべきポイント なぜanyhowを利用しないのか エラーハンドリングを行う上で持っている課題感 Drawer Growth グループ バックエンドエンジニアの中野です。今回は、私が所属するチームで gRPC API を開発する際に実践している Rust でのエラーハンドリングについて紹介していきます。 TL;DR エラーの発生原因がわかるようにエラー型を定義することが大切。 anyhow は使わずに自前のエラー型を定義して利用する。 エラーハンドリングを行う目的 そもそもなぜエラーハンドリングを行う必要があるのでしょうか。私が所属する

    RustでWeb APIを作る際のエラーハンドリング - CADDi Tech Blog
    Magicant
    Magicant 2024/03/08
    エラーからメッセージやバックトレース以上の情報を取りもどしたいなら anyhow は使はない方がええわな
  • Rust の hyper は何が嬉しいか

    Rust でWebサーバーを書く時の技術選定をするときに調べていると hyper に必ず出会うと思う。これは黎明期から存在しているライブラリで、Webサーバーにしては珍しく version 1 まで到達している老舗だ(1に到達してたら安心って考え方が正しいかはさておき...)。このライブラリは actix-web や axum のような他のライブラリとは毛色が違い、かなり primitive だ。そのため axum のベースに使われてもいて、hyper はそのまま使わないライブラリなのかもしれない。 サンプルコードから存在意義がわかりにくい さて、そんな hyper だが公式の example はこのようになっている。 #[tokio::main] async fn main() -> Result<(), Box<dyn std::error::Error + Send + Sync>>

    Rust の hyper は何が嬉しいか
  • HaskellとRustを足して2で割ったような関数型言語Fixを作っている話 - Qiita

    はじめに ここ1年ぐらいかけて、Fixという名前のプログラミング言語を作っています。 コアとなる機能の実装がある程度落ち着き、実際にFixを使ってプログラムを書けるようになってきたので、そろそろ言語の紹介をしてみようと思います。 記事はFixのチュートリアルではなく、どういう思想で設計されていて、どういう特徴を持つ言語なのか、という点を紹介するものです。 意見・提案・助言などをいただけるとうれしいです。 リポジトリはこちらです。 ※ コメントやコミットメッセージは一応拙い英語で書いていますが、日語でissueを立てたりdiscordで意見・質問してもらっても大丈夫です。 ※ 急いで作った部分もあるため、コンパイラのコードは結構汚いです。ご容赦ください。 現状、Fixをローカルで実行するためにはLLVMのインストールが必要で時間がかかりますが、Fix playgroundを使えばブラウザ

    HaskellとRustを足して2で割ったような関数型言語Fixを作っている話 - Qiita
  • RustでAPIを開発してみたら結構辛かった話

    はじめに 皆様こんにちは、株式会社プラハのAwataです。 今日は、以前書いたリーダーの振り返り記事で軽く触れていた、RustでのAPI開発についての記事を書いていこうと思います。 結論RustでWebは辛い!という話なんですが、約5か月くらいRustでWeb開発をしたので、今後の参考になるようなことを書いていこうと思います。 ぜひ最後までお付き合いください。 TL;DR RustでWeb開発はまだ早いかもしれない。 RustでDDDはやりやすい。ただしDIがやりにくい場合があるので、そこは要注意。 Rustはモジュールの仕組みが協力なので、モジュラモノリスはやりやすい。 サンプルリポジトリはこちら Rustはやっぱり難しいけど人気の理由も少し分かった気がする そもそもなぜRustでやってみようとなったのか 前例が少ない中、どうしてRustで開発しようと思ったのか気になる方も多いと思います

    RustでAPIを開発してみたら結構辛かった話
    Magicant
    Magicant 2023/02/21
    タイトルには「辛かった」とあるが、本文は「自分はかなり好きな部類に入った」で締められてゐる
  • Rustで少しずつリバーシを作ってみた

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

    Rustで少しずつリバーシを作ってみた
    Magicant
    Magicant 2022/09/17
    最初は挟んだ石をひっくり返すのも手動ってのが良い。スモールスタートから設計を段階的に深化させてゆく見本
  • Rustを通して見るオブジェクト指向|TechRacho by BPS株式会社

    こんにちは。yoshiです。夏のTechrachoフェア2022ということで、夏とは何の関係もない記事を書いていこうと思います。 業務ではC++をやっていながら前回、前々回にTechrachoで書いた記事に引き続きRustをやっていく訳ですが、定期的に炎上しがち(?)なオブジェクト指向の話です。みなさん、オブジェクト指向は好きですか? オブジェクト指向って何だろう? A. なんもわからん なんて言ってしまったら話が終わってしまうのですが。 歴史的な話をするとオブジェクトという用語はSimulaが初出で、オブジェクト指向はアラン・ケイがSmalltalkで導入したもの、という話になりますが、一方でビャーネ・ストロヴストルップがC++に導入した「カプセル化・継承・ポリモーフィズム」の組み合わせのことを指すことが多く、SmalltalkのそれとC++のそれにも違いがあるので定義が定まらない概念で

    Rustを通して見るオブジェクト指向|TechRacho by BPS株式会社
  • Rustでファミコンとスーパーファミコンのエミュレーターを書いた

    ゲームボーイエミュレーター、ゲームボーイアドバンスエミュレーターに続いて、Rustでファミコンエミュレーター"Sabicom"とスーパーファミコンエミュレーター"Super Sabicom"を書きました。 名前にRustっぽさを出してみました。 前回作ったマルチエミュレーターMERUのコアとして実装したので、ステートセーブや巻き戻しなどの機能も使えます。MERUの対応コアはこれで4つになりました。 こちらからWindowsLinuxのプリコンパイルバイナリがダウンロードできるようになっています。 他のプラットフォームおよびソースコードからコンパイルする場合は ファミコンとスーパーファミコンどちらも一通り体の機能は実装してあるつもりです。スーパーファミコンは割と細かいところまでちゃんと動くようにしてあるはずなので、動かなかったり表示がおかしかったりするソフトがあればバグですので、ぜひご報

    Rustでファミコンとスーパーファミコンのエミュレーターを書いた
  • 不変性とエイリアス参照と意味論と - Qiita

    はじめに これはGoに不変参照が存在しない理由を雑に推測してみたものを文章にまとめたものです。 ぜんぜん間違っている可能性があるので、そうだった場合はこっそり教えてください。 Go Goは値セマンティクスと参照セマンティクスを明確に使い分ける言語です。 それはだいたいの言語がそうなのですが、Goではどうやらこれを不変性と結びつける、すなわち不変セマンティクスと値セマンティクスが結びつき可変セマンティクスと参照セマンティクスが結びついているといった言説を目にすることが少なからずあります。 当然みなさんはC言語を履修していますから、const参照といった概念があるではないかと気がつかれたかと思います。 Goには参照に対して不変性を与えるセマンティクスはありません。 公式のFAQでは値を渡すか参照を渡すかによって使い分けるような設計を奨励しているようです。 なんということでしょう!Goは安全性の

    不変性とエイリアス参照と意味論と - Qiita
    Magicant
    Magicant 2022/06/25
    D も Nim も新しい言語の割にはめんどくさいことになってるんやなぁ
  • 多コピーの原罪

    Rust 分かんないッピ ・ε・ Rust の文字列周りのプラクティスを基礎から勉強してみようと思って勉強したのでそのときのメモをまとめます。 Rust は GC を持たない なぜ Rust の文字列周りの型があんなに大変なことになっているかは、Rust のメモリモデルと Copy の仕組みを学ぶことで理解できた気がしたので、メモリの話から始めます。 FYI: https://www.reddit.com/r/rustjerk/comments/ovx0uq/the_two_major_ways_rust_changed_my_life/ GC とは まずは GC からです。 GC とは Wikipedia をそのまま引用すると ガベージコレクション(英: garbage collection; GC)とは、コンピュータプログラムが動的に確保したメモリ領域のうち、不要になった領域を自動的に

    多コピーの原罪
    Magicant
    Magicant 2022/03/24
    これはだいぶ誤解を招きやすい表現だと思った > Copy できる(……)ものは Sized なもの
  • Rustが遅すぎる?プロファイリングで性能向上!

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

    Rustが遅すぎる?プロファイリングで性能向上!
    Magicant
    Magicant 2022/02/24
    「Goで可能なら、必要かどうかの問題ではないのです、Rustでもやらなければいけません」お、おう……
  • 「Rustでやると知らないうちに詰む設計」を避けるためのTipsを集めてみる

    とりあえず、よく言われてるやつから埋めていこうと思う。 構造体にライフタイムを持たせない 構造体にライフタイムを持たせるのは「基的に」避けよ、というのが重要なのは間違いないのだけど、これをもう少し実践的な内容にしたい。ちょっと考えてみたけど、こういうのはどうだろうか。 ある関数呼び出しの中でしか絶対に使わない。returnするまでにその構造体のデータは全て破棄される。static変数に退避させることもできない。アロケーションもその関数が面倒を見る。そういう一蓮托生できる関数呼び出しに心当たりはあるか? ある→ 構造体にライフタイムを持たせてもよい。 ない→ ライフタイム禁止。 そう考えてみると、DIとかReduxとかとも通じるところがあるかもしれない。「つべこべ言ってないで全部の責務を一番外側に持っていく」という決断ができるときは構造体ライフタイムが選択肢に入る。

    「Rustでやると知らないうちに詰む設計」を避けるためのTipsを集めてみる