並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 39 件 / 39件

新着順 人気順

Rustの検索結果1 - 39 件 / 39件

  • プライベートでMac使うのやめた

    最近、自分のプライベートの開発環境を大きく変えたので紹介する。 先にまとめ プライベートではMacを使わなくなった 家にUbuntuが入ったミニPCを置いた 外からはThinkPad X1 CarbonからTailscale経由のSSHで家のミニPCに接続 購入まで まず、自分にとって最も大きな変化はプライベートでMacを使わなくなったことだ。2013年くらいにプログラミングを始めてからずっとメインのOSはMacだったので、約10年ぶり、ほぼ初めての非Mac環境である。 自分の普段の開発のユースケースは、Webアプリケーション開発とNode.js上で動くソフトウェアの開発、WebKitへのコントリビューション、たまにRustやGoやC/C++で自分専用ツールの開発、くらいなので別にMacで困っているわけではなかった。Web開発やNode.js上のソフトウェアの開発はまあ普通にMacで困らな

      プライベートでMac使うのやめた
    • pyenvを初心者に薦めるのはもうやめよう - methaneのブログ

      Pythonのパッケージ・プロジェクト管理ツールはまだ乱立状態にあって、どれを使えばいいのかわからないから慣れたpyenv+pipを使おうという判断をする人がいるかもしれない。その判断自体は別に否定しないけれども、初心者に教える時にpyenvを教えるのはもうそろそろやめてほしい。 Pythonをソースからビルドするので、コンパイラや依存ライブラリを事前に揃えないといけない。依存ライブラリが足りないと中途半端なPython環境もできうる。 デフォルトで最適化オプション(PGO+LTO)が付いてないので、最適化ビルドしたPythonより~5%程度遅い Windowsで使えない Rye, pdm, Hatch などは python-build-standalone と呼ばれるビルド済みPythonをインストールする機能があるので、これらの欠点が存在しない。 Pythonをインストールするところま

        pyenvを初心者に薦めるのはもうやめよう - methaneのブログ
      • 個人開発OSSが世界に勝てなかった話

        ゆーすけべー氏の「OSSで世界と戦うために」にインスパイアされました。5年間pyserdeというOSSのライブラリを開発・メンテしてきた筆者が、ちょっとだけ世界と戦ってみたけど全然勝てなかったという話です。Honoとはプロダクトの規模も開発にかける情熱も全然違うけど、単純にポストモーテムは読み物として面白いかなと思ったので書いてみます。また、5年間の開発で学んだやってよかったことや失敗などもシェアできればと思います。 pyserde pyserdeは筆者が2019年から開発メンテナンスしているOSSで、RustのserdeというライブラリにインスパイアされたPython用のシリアライゼーションフレームワークです。 以下のようにクラスを定義すると、型アノテーションに基づいたデータ変換やバリデーションのコードが内部的に生成され、強い型付けのクラスを生成することができます。強い型付けのクラスはラ

          個人開発OSSが世界に勝てなかった話
        • Rust言語のための統合開発環境「RustRover」正式リリース、JetBrains。個人の非商用利用は無料

          Rust言語のための統合開発環境「RustRover」正式リリース、JetBrains。個人の非商用利用は無料 Kotlin言語や統合開発ツールIntelliJ IDEAなどの開発を行っているJetBrainsは、Rust言語用の統合開発環境「RustRover」の正式リリースを発表しました。 All systems are GO! We’re over the moon to see RustRover finally land! Read all about the release and the new free non-commercial license in our blog post https://t.co/s3MnqfiTrs, and see how we can help you stay focused on what matters pic.twitter.com

            Rust言語のための統合開発環境「RustRover」正式リリース、JetBrains。個人の非商用利用は無料
          • そもそもプログラミング経験自体無い人がRustを学ぶとき,どんな順序が良いのか

            遠きに行くには必ず邇きよりす.高きに登るには必ず卑きよりす.何事にも順序というものがあります.Rust の学習もそうです. そこで,前提知識がほぼ無い状態から Rust を学ぶときに,どんな順序が良いのか,考えてみました. コンパイル時と実行時の区別. Rust を学ぶとき,何がコンパイル時に起こって何が実行時に起こるか分からないと困ります.特に,型検査と借用検査がコンパイル時に行われることは,それらの基本的な規則を知る際に大切です.そこで,最初に Hello world を書く時点で,コンパイル→実行という流れを押さえておくべきでしょう. コンパイルエラーの読み方. まずコンパイルエラーを読むという基本的な姿勢を身に付けるのは大切です. 公式ドキュメントの場所. まず公式ドキュメントを読むという基本的な姿勢を身に付けるのも大切です. Hello world 周辺の基本文法. 例えば以下の

              そもそもプログラミング経験自体無い人がRustを学ぶとき,どんな順序が良いのか
            • Welcome - 100 Exercises To Learn Rust

              Welcome Welcome to "100 Exercises To Learn Rust"! This course will teach you Rust's core concepts, one exercise at a time. You'll learn about Rust's syntax, its type system, its standard library, and its ecosystem. We don't assume any prior knowledge of Rust, but we assume you know at least another programming language. We also don't assume any prior knowledge of systems programming or memory mana

              • 実用Rustアプリケーション開発

                実世界のRustアプリケーションを効率良く開発するための実用的な知見集 仕事などで実世界のRustアプリケーションを書く時に実用的な知見やtipsがまとまっていたらいいなと思ったことはありませんか? この本では、アプリケーションを書く時に悩むポイントや便利crateを素早くアプリケーションに組み込む際のポイントを紹介します。本の内容をスリムにするため、自分が学び始める前に知りたかったものに絞りつつ要所を紹介・解説します。Rustの言語仕様のメジャーどころやよく利用されているcrateはドキュメントが豊富なので、わからないところや詳しく知りたい部分はドキュメントを読んだりLLMに聞いてみたりしてください。 想定読者: "The Rust Programming Language" の要所を読み終えたくらいのこれからRustでアプリケーションコードを書いていく、または今まさにアプリケーションコ

                  実用Rustアプリケーション開発
                • Rustで有名アルゴリズムに挑戦(18) Rustでライフゲームを作ってみよう

                  C言語に代わってOS開発に採用されているRust。本連載では、Rustで有名アルゴリズムを実装して、Rustについての理解を深めています。今回扱うのは、生物の栄枯盛衰をシミュレーションするライフゲームです。 コンウェイのライフゲームで生物のシミュレーションをしよう コンウェイのライフゲームとは? 「ライフゲーム(Life Game)」は、イギリスの数学者コンウェイによって考案されたもので、簡単な配列操作によって実装できる簡単な生物のシミュレーションです。次のように動きます。 コンウェイのライフゲームを動かしているところ 見た目が面白いのに加えて、プログラミング言語の性質や特徴を知るのにもってこいの題材であるため、次の姉妹連載でも何度か紹介しています。ぜひ、今回のRust版と見比べてみてください。 - Python連載9回目(https://news.mynavi.jp/techplus/a

                    Rustで有名アルゴリズムに挑戦(18) Rustでライフゲームを作ってみよう
                  • Rustで作るプログラミング言語—— コンパイラ/インタプリタの基礎からプログラミング言語の新潮流まで

                    この本の概要 小さなプログラミング言語から本格的なプログラミング言語へ……ステップバイステップでの開発を通して,プログラミングそのものへの理解を深めよう! こんな方におすすめ コンピュータサイエンス,とくにプログラミング言語そのものやコンパイラについての素養を得たいと考えている人 他言語でのプログラミング経験があり,Rustの習得に興味のある人。とくに,学習のための題材を探している人 第1章:プログラミング言語概論 プログラミング言語の分類 他の切り口での分類方法 コンパイルパイプライン 第2章:スタックベース仮想マシン 仮想マシン概論 Rustでの実装 標準入力からの読み込み パースとコマンドの実行 ブロックとネスト構造 if制御構文 変数の定義 複数行のソースコードへの対応 関数呼び出し 関数の再帰呼び出し WebAssemblyへのコンパイルとブラウザでの実行 第3章:プログラミング

                      Rustで作るプログラミング言語—— コンパイラ/インタプリタの基礎からプログラミング言語の新潮流まで
                    • Welcome - 100 Exercises To Learn Rust

                      Welcome Welcome to "100 Exercises To Learn Rust"! This course will teach you Rust's core concepts, one exercise at a time. You'll learn about Rust's syntax, its type system, its standard library, and its ecosystem. We don't assume any prior knowledge of Rust, but we assume you know at least another programming language. We also don't assume any prior knowledge of systems programming or memory mana

                      • 【v6プラス/OCNバーチャルコネクトでもNATタイプA】LinuxでポートセービングIPマスカレード付きの制限コーン風NAT(EIM/ADF)を動かす - turgenev’s blog

                        概要 NAT動作をめぐる誤解まとめ - turgenev’s blogでは、UDPホールパンチングのしやすさとポートの節約を両立するには「Address Dependentなマッピングを保持しつつEIM風に動作するADFなNAT」が一番いいという話を書きました。これだとv6プラスやOCNバーチャルコネクトでもNintendo SwitchのNAT判定が「タイプA」になります。 この記事では、Symmetric NAT/Full Cone NATをサポートするruby製NATであるrat(GitHub - kazuho/rat: NAT written in pure ruby)を手元で動かし、またコードを少しだけ変更することで上記のようなNATを実際に動作させるところまでを紹介します。変更後のコードはGitHub - ge9/rat: NAT written in pure rubyに公開

                          【v6プラス/OCNバーチャルコネクトでもNATタイプA】LinuxでポートセービングIPマスカレード付きの制限コーン風NAT(EIM/ADF)を動かす - turgenev’s blog
                        • Taming Floating-Point Sums | orlp.net

                          Suppose you have an array of floating-point numbers, and wish to sum them. You might naively think you can simply add them, e.g. in Rust: fn naive_sum(arr: &[f32]) -> f32 { let mut out = 0.0; for x in arr { out += *x; } out } This however can easily result in an arbitrarily large accumulated error. Let’s try it out: naive_sum(&vec![1.0; 1_000_000]) = 1000000.0 naive_sum(&vec![1.0; 10_000_000]) = 1

                          • GitHub - HigherOrderCO/Bend: A massively parallel, high-level programming language

                            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 - HigherOrderCO/Bend: A massively parallel, high-level programming language
                            • Exploring Seamless Rust Interop for Newer Languages, Part 1

                              Exploring Seamless Rust Interop for Newer Languages, Part 1 Languages like C++, Typescript, Kotlin, and Swift had a brilliant approach: they were created to harness an existing ecosystem of libraries from another pre-existing language. But that's easier said than done! Especially for newer languages focusing on memory safety and speed. 0 Luckily, newer languages can tap into C's ecosystem by addin

                              • Linux 6.10‐rc1リリース、RustやMilk-V MarsなどRISC-Vサポートが拡大 | gihyo.jp

                                Linux Daily Topics Linux 6.10‐rc1リリース⁠⁠、RustやMilk-V MarsなどRISC-Vサポートが拡大 Linus Torvaldsは5月26日(米国時間⁠)⁠、次期Linuxカーネル「Linux 6.10」の最初のリリース候補版となる「Linux 6.10-rc1」を公開した。Linusは「通常サイズのカーネルリリースに見えるが、少し小さいかもしれない。(⁠Linux 6.10には)新しいファイルシステムはなく、xfsのオンライン修正により、bcachefsの修正はもはや最大のファイルシステム変更ではない」とコメントしている。 Linux 6.10-rc1 -Linus Torvalds Linux 6.10では多くのアップデートが予定されているが、その中でも注目されるのがRISC-Vに関連したサポートの拡張だ。5月22日付けで行われたマージでは、

                                  Linux 6.10‐rc1リリース、RustやMilk-V MarsなどRISC-Vサポートが拡大 | gihyo.jp
                                • Translation of the Rust's core and alloc crates | Formal Land

                                  We continue our work on formal verification of Rust programs with our tool coq-of-rust, to translate Rust code to the formal proof system Coq. One of the limitation we had was the handling of primitive constructs from the standard library of Rust, like Option::unwrap_or_default or all other primitive functions. For each of these functions, we had to make a Coq definition to represent its behavior.

                                    Translation of the Rust's core and alloc crates | Formal Land
                                  • GitHub - Ph0enixKM/Amber: 💎 Amber the programming language compiled to bash

                                    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 - Ph0enixKM/Amber: 💎 Amber the programming language compiled to bash
                                    • 【今週水曜開催】Rust / WebAssemblyの最新動向をエキスパートが語る!TechFeed Experts Night#30 〜 Rust / WebAssembly最前線

                                      日本有数のエキスパートエンジニアとともに、最先端技術を掘り下げる「TechFeed Experts Night」、今回のテーマは「<strong>Rust / WebAssembly最前線</strong>」です。 こんにちは、テックフィード白石です。 日本有数のエキスパートエンジニアとともに、最先端技術を掘り下げる「TechFeed Experts Night」、今回のテーマは「Rust / WebAssembly最前線」です。 高速性と安全性、そしてモダンな言語仕様を兼ね備えるプログラミング言語「Rust」。Webブラウザのみならずサーバーサイドや仮想化/コンテナ技術、エッジコンピューティングに至るまで、活用事例が広がりつつあるWebAssembly。そしてRustは、WebAssembly開発における主要な言語としても注目されています。今回はそんなRust / WebAssembly

                                        【今週水曜開催】Rust / WebAssemblyの最新動向をエキスパートが語る!TechFeed Experts Night#30 〜 Rust / WebAssembly最前線
                                      • Faster linking times on nightly on Linux using `rust-lld` | Rust Blog

                                        TL;DR: rustc will use rust-lld by default on x86_64-unknown-linux-gnu on nightly to significantly reduce linking times. Some context Linking time is often a big part of compilation time. When rustc needs to build a binary or a shared library, it will usually call the default linker installed on the system to do that (this can be changed on the command-line or by the target for which the code is co

                                          Faster linking times on nightly on Linux using `rust-lld` | Rust Blog
                                        • Rust製ツールのmiseでランタイムバージョンを管理する|Taro Yamashita

                                          アキッパの山下です。 手元の環境を汚さずに、PHP/Python/Node.jsなどのランタイムバージョンを切り替えたいというニーズでは、Dockerの利用がすっかり主流だと思いますが、シーンによってはPythonのvenvといったツールもまだまだ活躍するシーンは多いのではないでしょうか。 そんなツールの中で、今回はRust製ツールのmiseを紹介します。 ランタイムバージョン管理とは?あらためて、ITシステムやWebサービスを開発・運用していく場合、どのプログラミング言語で構築されているか?だけでなく、そのバージョンは?も重要なポイントです。 稼動しているサーバにインストールされている言語バージョンと、手元の開発環境でバージョンが異なれば、手元で動くのにサーバで動かない(あるいはその逆)が往々にして起こります。 開発環境にサーバと同じバージョンをインストールすれば良いのですが、サーバAで

                                            Rust製ツールのmiseでランタイムバージョンを管理する|Taro Yamashita
                                          • Rust製TypeScript Linterにおける型情報Lintルールの模索

                                            Rust製TypeScript LinterであるBiome, Oxc, deno_lintなどは、TypeScriptの型情報を利用するLintルール(型情報Lintルール)[1]を持っていません。本記事では、その背景から、Rust製TypeScript Linterが型情報Lintルールを実現するための手段についてまとめます。 筆者のTSKaigi 2024で利用した下記登壇資料に情報を追加し、文章化したものです。 要約すると、以下になります。 Rust製TypeScript Linterは、安全性をさらに高めてくれるtypescript-eslintの型情報Lintルールが欲しいが、パフォーマンスを犠牲にしたくない。TypeScript Compilerに頼らずに実現するには、Alternative TypeScript Compilerや型推論が必要。型情報Lintルールの実装を型

                                              Rust製TypeScript Linterにおける型情報Lintルールの模索
                                            • [Rust] 静的ディスパッチ(Enum)と動的ディスパッチ(dyn Trait)はどちらが速いのか?

                                              ある時、 Rust で動的ポリモーフィズムを実現するには、 Enum は dyn Trait より遅いという主張を見ました。 dyn Trait は仮想関数テーブルのルックアップがある分、遅いはずだと思っていたので、これは確かめてみようと思いました。 [2024/5/24追記]: 少し後で考えると、ここで静的ディスパッチという言葉を使うのは語弊があるような気がしたので補足します。静的ディスパッチとは、 dyn Trait に対する impl Trait のことを呼ぶことが多く、ここで Enum で実現しているのは「一つのコンテナに異なる型や挙動を示すオブジェクトを含める」という意味では動的ディスパッチです。正確に言うならば、この記事で示しているのは、同じ動的ディスパッチでも、 Enum を使った場合分けか、 dyn Trait を使った仮想関数テーブルを使ったポリモーフィズムかという違いで

                                                [Rust] 静的ディスパッチ(Enum)と動的ディスパッチ(dyn Trait)はどちらが速いのか?
                                              • References are like jumps

                                                In a high-level language, the programmer is deprived of the dangerous power to update his own program while it is running. Even more valuable, he has the power to split his machine into a number of separate variables, arrays, files, etc.; when he wishes to update any of these he must quote its name explicitly on the left of the assignment, so that the identity of the part of the machine subject to

                                                • graydon2 | Some notes on Rust, mutable aliasing and formal verification

                                                  frog hopSome notes on Rust, mutable aliasing and formal verification Recently Boats wrote a blog post about Rust, mutable aliasing, and the sad story of local reasoning over many decades of computer science. I recommend that post and agree with its main points! Go read it! But I also thought I'd add a little more detail to an area it's less acutely focused on: formal methods / formal verification.

                                                  • Exploring Type-Informed Lint Rules in Rust based TypeScript Linters

                                                    Exploring Type-Informed Lint Rules in Rust based TypeScript Linters | Rust製TypeScript Linterにおける型情報Lintルールの模索 This slides are used at TSKaigi 2024 | TSKaigi 2024 にて利用した資料です。(20m) Update requests are welcome anytime. ## References - Rust-Based JavaScript Linters: Fast, But No Typed Linting Right Now https://www.joshuakgoldberg.com/blog/rust-based-javascript-linters-fast-but-no-typed-linting-right-n

                                                      Exploring Type-Informed Lint Rules in Rust based TypeScript Linters
                                                    • GitHub - dalance/amber: A code search / replace tool

                                                      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 - dalance/amber: A code search / replace tool
                                                      • Linux 6.9リリース ―Intel FREDのマージ、ARM64でのRustサポートなど | gihyo.jp

                                                        Linux Daily Topics Linux 6.9リリース ―Intel FREDのマージ⁠⁠、ARM64でのRustサポートなど Linus Torvaldsは2024年5月12日(米国時間⁠)⁠、「⁠Linux 6.9」のリリースをアナウンスした。開発期間は約2ヵ月、7本のリリース候補(RC)版を経ての一般提供開始となる。Linux 6.9のリリースにあたりLinusは「全体的にかなり正常に感じられるリリース」とコメントしており、多くの改善が実施された安定したカーネルに仕上がったことがうかがえる。 Linux 6.9 -Linus Torvalds Linux 6.9のおもなアップデートは以下の通り。 x86プロセッサにおけるイベント配信(IDT)の代替技術で、特権レベル間の移行時間を短縮し、ソフトウェアの堅牢性を高めるフレームワーク「Intel FRED」のメインラインへのマー

                                                          Linux 6.9リリース ―Intel FREDのマージ、ARM64でのRustサポートなど | gihyo.jp
                                                        • GitHub - polachok/helix-gpui: helix gpui frontend

                                                          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 - polachok/helix-gpui: helix gpui frontend
                                                          • The borrow checker within · baby steps

                                                            This blog is where I post up various half-baked ideas that I have. All PostsCategoriesGitHubTwitterRSS/Atom feeds This post lays out a 4-part roadmap for the borrow checker that I call “the borrow checker within”. These changes are meant to help Rust become a better version of itself, enabling patterns of code which feel like they fit within Rust’s spirit, but run afoul of the letter of its law. I

                                                            • xavxav - Visions of the future: formal verification in Rust

                                                              May 22, 2024 In response to a recent Boats article, I mentioned that Rust’s type system drastically changes things for verification. This comment seems to have aroused a lot of interest, so I figured I’d expand on it, explaining how Rust simplifies formal verification and why this had the verification community excited for a while now. I assume that most of you reading this post won’t be experts i

                                                              • n8s.site | Async Rust Isn't Bad: You Are

                                                                There have been quite a few articles in the past year or so about the downsides of using Rust and introducing the async keyword into your code base: Why asynchronous Rust doesn't work Mixing Sync and Async Rust Async Rust Is A Bad Language Avoid Async Rust at All Cost ...too lazy to continue searching, but you get the idea It generally boils down to two things: async is invasive. The path of least

                                                                  n8s.site | Async Rust Isn't Bad: You Are
                                                                • rust is not about memory safety

                                                                  01 june, 2024 most of rust discussions nowadays revolve around memory safety, and how it is safer than C / C++ / zig / go / whatever language is being trashed on twitter that day. while yes, that is true - not that the bar for most of these is particularly high - what I think is the main point of the language is always glossed over: correctness. when one tries to criticize any of the aforementione

                                                                    rust is not about memory safety
                                                                  • Rust and dynamically-sized thin pointers

                                                                    One of Rust's notable differences from C is its requirement that all values have a defined size, which enables runtime bounds-checking and advanced static analysis tooling such as MIRI. For dynamically-sized types (DSTs) this requirement is implemented using thick pointers, such that each pointer to a dynamically-sized value is an (address, size) tuple. Thick pointers are more convenient and easie

                                                                    • GitHub - orhun/flawz: A Terminal UI for browsing security vulnerabilities (CVEs)

                                                                      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 - orhun/flawz: A Terminal UI for browsing security vulnerabilities (CVEs)
                                                                      • Rust is for the Engine, Not the Game - Barrett's Club

                                                                        Last updated on June 6, 2024. Rust is for the Engine, Not the Game Macros are cool! But, if we're going to create another language anyways... LogLog Games recently posted Leaving Rust gamedev after 3 years, a must-read article for folks who're doing game development in Rust. It focuses on a small indie developer organization and their experiences with Rust development. If you haven't given it a re

                                                                          Rust is for the Engine, Not the Game - Barrett's Club
                                                                        • Rust's iterators optimize nicely—and contain a footgun | nicole@web

                                                                          I saw a claim recently that in functional programming using "map/filter iterates over the list twice, while the foreach loop iterates only once." The author continued that "Haskell can fuse maps together as an optimization but I don't think you safely fuse arbitrary map/filters? I dunno." There are really two claims here: in functional programming, map/filter will do two iterations there is an opt

                                                                          • Enter paradis — A new chapter in Rust's parallelism story | Andreas Longva

                                                                            Rust is a great language for data-parallel problems with relatively simple parallel access patterns. It particularly excels when the data can be split up into contiguous chunks. On the other hand, things can get messy for parallel access patterns that are non-contiguous or less structured. In this post, I will show you an uglier side of parallelism in Rust. Thankfully, it is not a fundamental flaw

                                                                            • Blazingly Fast Linked Lists

                                                                              © Tomas Castelazo, www.tomascastelazo.com / Wikimedia Commons / CC BY-SA 4.0 Linked lists are taught as fundamental data structures in programming courses, but they are more commonly encountered in tech interviews than in real-world projects. In this post, I'll demonstrate a practical use case where a linked list significantly outperforms Vec. We will build a simple data validation library that sh

                                                                              • How to build a plugin system in Rust

                                                                                How to build a plugin system in RustMay 29, 2024Software used by businesses often needs to be extensible. For Arroyo, a real-time SQL engine, that means supporting user-defined functions (UDFs). But how can we support dynamic, user-written code in a static language like Rust? This post dives deep into the technical details of building a dynamically-linked, FFI-based plugin system in Rust. Arroyo i

                                                                                  How to build a plugin system in Rust
                                                                                1