タグ

Rustに関するnamao4710のブックマーク (26)

  • 次世代エディタ6選 - Qiita

    ⚪︎ : 無制限のBasic、限度ありのAdvance △ : 限度ありのBasic Zed Atomの製作者達によって作成されたOSSのRust製エディタ。現状はMacOSのみで使用可能。そのほかのOSも現在対応中。パフォーマンスを重視しているので軽い。AIは搭載していないが、Copilotを使用することは可能。 Github : zed-industries/zed インストール方法 https://zed.dev/download からインストールしてください。(MacOSのみ) 使用方法 以下に詳しく書かれていました。 思考のスピードでコードを書け!!Rust製の次世代エディタ「Zed」 Positron VSCodeをベースにした次世代データサイエンスIDE。 インストール方法 https://github.com/posit-dev/positron/releases からイン

    次世代エディタ6選 - Qiita
  • Rustで自作シェル書いてみた

    はじめに 自作シェルを書いてみた記事はよく見かけるのですが、そのほとんどが fork -> exec という流れです。仕組みを学ぶという点で非常に有効なのでそれはそれで良いとして、 Rust では標準ライブラリの std::process::Command を使用してもっと簡単にコマンド実行ができるよ! という記事があまりないので書いてみました。 コマンドの実行 REPL パース処理はできるだけシンプルに書きます。 標準入力から1行読み取り、Command::spawn() で実行します。 それを繰り返すのが REPL (Read-Eval-Print Loop)です。 これだけでシェルと言い張っても良いと思っています🤔 use std::io::{self, Write}; use std::process::Command; fn main() { loop { // プロンプト p

    Rustで自作シェル書いてみた
  • お気に入りのコマンドラインツールを淡々と紹介する

    めちゃくちゃ良い記事でした。 「OSS は使っていることを公言するだけでも貢献になる」と songmu さんが言っていたので、私も貢献したいと思います。 僕も貢献したいのでよく使うコマンドラインツールを紹介していきます。 特定のプログラミング言語等に依存するツールは省いています。 actionlint - GitHub Actions の Workflow ファイルの静的検査 GitHub Actions の Workflow ファイルの静的検査ツールです。 かなり精度が高く、色々な設定ミスを検知してくれます。 エラーメッセージも見やすくて助かります。 aicommits - コミットメッセージを自動生成 変更内容を元に自動でコミットメッセージを AI が生成してくれるツールです。 コミットをする前にちゃんと確認してくれるのも安心感があって良いです。 cLive - ターミナル操作を自動化

    お気に入りのコマンドラインツールを淡々と紹介する
  • 2024年絶対に読む技術書10選

    あけましておめでとうございます!uenikiです。2024年が始まってしまいました。 こちらの記事で、2023年に読んだ技術書Top5を紹介しました。 2023年は、技術書は12、3冊しか読めませんでしたが、毎年大体15冊〜20数冊程度で安定しているようです。(マネジメント系のを含めるともう少し増えますが、ここではピュアに技術寄りののみ対象とします。) ということは、2024年も10冊は読めるということですし、すでに発売している(発売を予定している)でもそれぐらいの数はあるだろうということで、雑に10冊を選んでみたいと思います。この企画としては、すでに読んだことあるを再度読み通すのも1冊とカウントすることとします。辞書的に必要な箇所だけ読むのは1冊とはカウントしません。 そして、必ずこの10冊は読むことします。 10選のご紹介 [試して理解]Linuxのしくみ ―実験と図解で学ぶO

    2024年絶対に読む技術書10選
  • Rustを使ったOS開発 - 普段のRustと同じ様にOSを実装したい

    まえがき こんにちは、@nasaです。 この記事は、Wantedly Advent Calendar 202310日目の記事です。 前回の記事は、「Wantedly での SLO 運用の現状とこれから」でした! 最近、趣味Rustを用いてOSを開発しています。通常のRustでCLIツールを開発する際とは異なり、OSを書く際には多くの異なる考慮事項があります。 ここでは、ベアメタル環境(OSが存在しない環境)で動作するプログラムをRustで実装する方法を紹介します。 ゴールは普段のRustと同じ様にOSを実装できる状態にすることです。 普段のRustとは タイトルで普段のRustと書きましたが、普段のRustとはどのようなものでしょうか? 記事では下記の条件を満たす環境で実装できる状態を普段のRustと呼んでいます。 main関数が動作する 関数呼び出しができる 動的メモリ確保ができる

    Rustを使ったOS開発 - 普段のRustと同じ様にOSを実装したい
  • Rust初心者がRust.Tokyo 2023 をオンライン視聴した感想

    2023/10/21(土)、Rust.tokyo 2023を自宅からオンライン視聴しました。 この記事においては、Rust歴1ヶ月の筆者がRust.tokyoにオンライン参加した感想レポートを、筆者がRustを始めた経緯などとも絡めつつ記述します。 TL;DR Rust初心者でもRust.tokyoはとても楽しめたし、勉強になった 組織におけるRustの導入プラクティスとしては、「まずは少人数から」が良さそうだと感じた ライブリーディングは、Rustにおいては特に学習としての効果が高そう 筆者のRust(とその他)歴 筆者は今年の10月から、株式会社LabBaseにおいて長期インターンとして勤務しております。チームとしてはリサーチチームに所属しており、Rustを用いたWebバックエンド開発や、新規プロダクト/機能の開発を行っております。 これまでに経験した言語はPython, TypeSc

    Rust初心者がRust.Tokyo 2023 をオンライン視聴した感想
  • Cloudflare Workers - サーバレス環境で Rust を動かす件

    Cloudflare Workersとは? 簡単に言えば、Cloudflare社が提供するサーバレス環境です。誤解を恐れずに言えば、AWS Lambdaみたいなものです。こんな感じのJavaScriptのHTTPリクエスト・ハンドラーをサーバを構築することなく実行できます。

    Cloudflare Workers - サーバレス環境で Rust を動かす件
  • VSCodeがWebAssemblyの実行時デバッグに対応。C/C++やRust、Zigなどのソースコードと関連付け、変数参照、ブレークポイントなど可能に

    VSCodeWebAssemblyの実行時デバッグに対応。C/C++RustZigなどのソースコードと関連付け、変数参照、ブレークポイントなど可能に マイクロソフトは、オープンソースで開発しているコードエディタ「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などのソースコードと関連付け、変数参照、ブレークポイントなど可能に
  • 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
  • GoでWebAssembly――Go標準のWebAssemblyサポートを体験する

    GoWebAssembly 今回は、プログラミング言語GoによるWebAssemblyプログラムの開発を紹介します。Goは、Googleの開発したプログラミング言語であり、WebAssemblyへの対応も積極的に行われています。C/C++Rustでは、EmscriptenやRust and WebAssemblyのような外部プロジェクトとの連携でWebAssembly対応を果たしていました。Goでは、直接WebAssemblyバイナリをターゲットにできるなど、言語レベルでWebAssemblyに対応しているのが特徴です。そのため、Goの言語環境を整える以外の特別な環境整備が不要で、すぐに標準ライブラリを含めたGoの言語仕様を十分に生かしたWebAssemblyプログラムを作成することができます。 Goは、C/C++Rustと同様にネイティブコードをターゲットにしたプログラミング言語で

    GoでWebAssembly――Go標準のWebAssemblyサポートを体験する
  • Visual Studio CodeのPython/Jupyter向け拡張機能にてRust製静的解析ツール「Ruff」が利用可能に

    2022年12月版では、言語サーバー「Pylance」を使用してVisual Studio CodeでPythonのコードを書いているときに、コードのブロックを自動的に認識して適切な位置にインデントを挿入してくれるようになった。Microsoftはこれで、コードの整形に気を遣いすぎることなく、コードのロジックに集中できるようになるとしている。現在のところこの機能は標準では有効になっていないが、Microsoftは今後数カ月以内に初期状態から有効にしたいとしている。 そして、静的解析ツール「Ruff」の機能をVisual Studio Codeで利用できるようになった。RuffはPythonの静的解析ツールとしては一般的な「flake8」の代替を目指して、Charles Marshが開発したもので、処理速度を重視してRust言語で記述してある。Visual Studio Codeでは、Imp

    Visual Studio CodeのPython/Jupyter向け拡張機能にてRust製静的解析ツール「Ruff」が利用可能に
  • Rustはどのくらい高速? Rust製超高速データ分析ライブラリって? 無料の電子書籍で学ぼう

    2022年現在、開発者に最も愛されるプログラミング言語に7年連続で選ばれている「Rust」。Rustの特徴として「メモリ安全性の確保」「高速性」などが挙げられますが、実際に他言語と比較するとどういう違いがあるのでしょうか。また、デメリットとして挙げられることもある「習得の難しさ」については、どういった種類の難しさがあるのでしょうか。 eBookは、Web開発者としての興味、関心に基づきRustを端的に紹介し、その強みや弱みについて理解を深める連載「WebエンジニアからみたRust」と、RustでWebアプリケーションを開発する際に基礎となる要素技術からRustの応用まで、Rustに関するあれこれを解説する連載「Rustで始めるWebアプリケーション」を収録しています。 Rustの処理速度を実際にテストする「Rust当に動作が高速なのか? Pythonとの比較で分かる、Rustのパフォ

    Rustはどのくらい高速? Rust製超高速データ分析ライブラリって? 無料の電子書籍で学ぼう
  • Rustに貢献してみませんか?コントリビューターたちが語る開発の裏側とOSS活動の魅力 - Findy Engineer Lab

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

    Rustに貢献してみませんか?コントリビューターたちが語る開発の裏側とOSS活動の魅力 - Findy Engineer Lab
  • Cから学ぶRustの良さ - Qiita

    背景 RustはしばしばCやC++言語と比較される記事が見られ、実際に、より開発がしやすいような機能が多々入っていると思います。そこで、私が以前業務で使用していたCと比較して、この点は、実際にRustを触ってみて良かったなと思った点をお伝えしたいと思います。 ただ、どちらかというと、Rustというより、あまり意識しなくても書けることは素晴らしいという話になるはず... Cについて Cは言わずもがな、今でも低レイヤーを扱ったりするときに用いられることもある言語です(ネットワーク、OSなど)。また、ハードウェアでも活躍しています。 マルチプラットフォームに対応しているので、環境に依存せずに実行でき、実行速度が速いことが特徴として挙げられます。 ただし、メモリを扱うことが多いため、習得難易度はやや高めとされているようです。 比較 Rustの概念として以下のようなものがあります。 安全性 並行性

    Cから学ぶRustの良さ - Qiita
  • ゼロからのOS自作入門をRustで実装した

    概要 OSを座学・書籍で学ぶだけでなく実際に作ってみたくて、またRustでなにかを作りたくて、 ゼロからのOS自作入門(以下みかん)で作るMikanOSをRustで実装しました[1]。 先駆者はいくつか見かけましたが、最後まで実装されている方は見つけられず、 もしRustで実装しようとしてハマっている人や途中で諦めてしまった方がいれば参考になるかと思い、記事を書きました。 実装者のレベル 一応、私のレベル感を書いておきます。 OSの開発経験はなく、低レイヤーっぽい開発経験もひとつだけ Nand2tetris Rustは以下のように多少の経験はあるが業務で利用したことはなし the book はほぼ読んで写経した Rustで始めるTCP自作入門 はやった Programming Rust, 2nd Edition は気になるところを読んだ というような感じで、OS開発もRustも経験が浅い

    ゼロからのOS自作入門をRustで実装した
  • Rustのスレッドとチャネルと共有メモリの話

    この記事ではRustのスレッドとチャネルについてご紹介します。最後に共有メモリについても少しだけ触れます。対象としてはgolangを書ける程度の中級者レベルを想定しています。 公式ドキュメントについて Rustの公式ドキュメントはとても良く書けており英語の勉強にもなります。プログラミング・チュートリアルは圧巻ですのでぜひ原文で読んでみてください。 スレッド RustのスレッドはOSスレッド(1:1 threading)になります。GolangJavaはグリーンスレッドです。 This model where a language calls the operating system APIs to create threads is sometimes called 1:1, meaning one operating system thread per one language thr

    Rustのスレッドとチャネルと共有メモリの話
  • 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の活用 
  • 私の Rust 学習記録 2021

    ※ この記事は 2021/10 時点での内容です。 社内勉強会で 2021 年に発表した内容で、外部公開しようと思って寝かせてしまっていました。 記事としての鮮度は落ちてますが、頑張って書いたものなので Zenn に公開しておきます。 概要 社内異動を機に業務で Rust を書けることになった私の Rust 学習記録です。 今までの言語経験はメインが Ruby、少し JS/TS、趣味Go をやっていたぐらいです。 学習の方針 なんでもかんでも Rust で書く。 Rust は GC のないシステムプログラミング言語として大体 C 言語と同等のレイヤーからカバーできるので、書こうと思えば OS から Web アプリまで書ける。 yew のような UI 構築用のライブラリもあるので、フロントエンド開発もできる。 というわけでなんでもかんでも Rust で書ける。 リポジトリ運用 デプロイの

    私の Rust 学習記録 2021
  • 【競プロ】Python使いがRustを「完全に理解する」までのTips - Qiita

    2023AtCoder言語アップデートにより、Rustの環境は大きく変化しました。そのため、記事はフリーズさせ、後日、2023年版に対応した記事を新規作成したいと思います。 筆者は、競プロのアルゴはPythonを使いつつ、マラソンはRustを使っております。前者は発想を短時間にコードにすることを重視し、後者はコーディングに時間をかけてでも高速性を確保したいからです。 その際、Pythonでできたアレを、Rustでどう書くんだっけ、と悩むことが多く、悩んだ結果を自分メモを兼ねてTipsにすることにしました。競プロに出てくるパターンを多く収録していますが、競プロ目的以外でも参考になるかと思います。とりありず、ざっと記述してみましたが、そのうち増やしたり、章立てを変えたりするかも知れません。 なお、参照がーとかトレイトがーとか、Rustそのものの入門には言及していませんので、適宜、別の記事や

    【競プロ】Python使いがRustを「完全に理解する」までのTips - Qiita
  • 「Rustでやると知らないうちに詰む設計」を避けるためのTipsを集めてみる

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

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