最近2冊目のRust本を購入し、少しずつRustの勉強を進めているのですがその際にrust-analyzerを入れてみたら思いのほか素敵だったのでそれの紹介です。 rust-analyzerってなに? Rustの入力補完や型チェック、文法ミスのチェックなどを行うための言語サーバープロトコル(Language Server Protocol、lsp)です。 以前まではRust公式とは関係無いプロジェクトでしたが、完成度が高かった影響なのか2022年2月ごろにRust公式になったようです。 オープンソースのプログラミング言語であるRustの開発チームは、Rust用の言語サーバプロトコル(LSP)の新たな実装であるrust-analyzerプロジェクトが、Rustの一員として加わったことを、2月21日(現地時間)に発表した。 以下のように紹介されていますが、確かにレビュー評価とかもかなり高くなっ
Bringing a great IDE experience to the Rust programming language. Source About rust-analyzer is an implementation of Language Server Protocol for the Rust programming language. It provides features like completion and goto definition for many code editors, including VS Code, Emacs and Vim. Quick Start For VS Code, install rust-analyzer extension from the marketplace. Prebuilt language server binar
The StoryThe sudo and su utilities mediate a critical privilege boundary on just about every open source operating system that powers the Internet. Unfortunately, these utilities have a long history of memory safety issues. By rewriting sudo and su in Rust we can make sure they don't suffer from any more memory safety vulnerabilities. By leaving out less commonly used features we can reduce attack
はんだ付けが難しい場合、価格は少々高くなりますが、スイッチサイエンスからピンヘッダ実装済みのPicoが販売されているので、それを購入するのもよいでしょう。 ピンヘッダのはんだ付けが完了したら、ブレッドボードに挿入します。PCとUSBケーブルで接続するので、ケーブルが出る方の端に配置すると、残りの部分に部品を置きやすくなります。 それでは、以下より開発環境を構築していきます。 実行環境 Mac mini (2018) macOS Big Sur 11.5.2 HomebrewでGitをインストール済み Macでの手順を記述しますが、Linuxでも同様に実行できると思います。 開発に必要なツールの準備 まず、Rustのツールチェインをはじめとした、開発に必要なツールをインストールします。 Rustツールチェインの準備 https://rustup.rs/ の手順に従い、Rustのツールチェイン
IoT(モノのインターネット)市場が拡大する中で、エッジ側の機器制御で重要な役割を果たすことが期待されているリアルタイムOS(RTOS)について解説する本連載。第18回は、カーネルやドライバをRustで記述することで、RTOSのレイテンシや安全性の問題をドラスチックにクリアした「Tock」を紹介する。 リアルタイムOS列伝、今回のお題は「Tock」である。開発したのは現在プリンストン大学の助教授で博士のAmit Levy氏である。このLevy氏、助教授業(?)の傍らで2011年にMemCachierという会社を創業しており、現在もここのCEOを務めている。この会社が扱っているのはキャッシュサーバのmemcachedを改良した製品だが、こちらとTockは関係がない。 ⇒連載記事「リアルタイムOS列伝」バックナンバー ms以内のレイテンシと安全性をRTOSで両立するにはどうすればいいのか To
はじめに 本連載では、Webフロントエンド開発において注目されているバイナリ形式のプログラムファイルWebAssemblyを、Rustで実装して活用する方法を説明しています。前回記事では、WebAssemblyに至るまでのWebフロントエンド高速化の歴史を紹介するとともに、RustでWebAssemblyを実装する大まかな流れを説明しました。 本記事では、WebAssemblyの実装で必要となるRust言語の基礎を説明していきます。 対象読者 話題のRust言語について学びたい方 動的なWebページにさらなる速度を求める方 WebAssemblyに興味があるが、Rustのハードルが高いと思っている方 必要な環境 本記事のサンプルコードは、以下の環境で動作を確認しています。 Windows 10 64bit版 rustup 1.24.3 cargo 1.55.0 サンプルコードを実行するには
初出:技術評論社刊「ソフトウェアデザイン 2021年9月号」 先日、技術評論社よりRustのメモリ管理機能についての特集に寄稿させて頂きました。 この記事は自分が寄稿させていただいた記事をブログ用に一部推敲・加筆を加えたものです。 なお、ソフトウェアデザインでの特集ではより実践的な例でのメモリ管理についての解説もあるので、興味のある方は本誌のほうも手にとっていただければと思います。 プログラム言語におけるメモリ管理の課題プログラミングにおける課題の一つとしてどうやってメモリ領域(ヒープ領域)を管理するかというものがあります。 C言語ではmalloc/free関数などを用いて手動でメモリを管理しています。 これらの関数はメモリアドレスを示すポインタを介してメモリ管理を行います。 malloc関数は必要なメモリ領域を確保してその先頭番地のポインタを返し、プログラム内ではその番地のメモリを読み書
Over the past few years, we’ve heard over and over again about an exodus from Mac to Windows in the creative community. Here at Astropad, we’ve kept a close eye on this shift, knowing that Windows would be a big part of our company’s future. Our flagship products — Astropad Studio and Luna Display — primarily serve the creative pro-market. Both products run on our low-latency, high-fidelity video
なぜわざわざ学習コストを払ってまでRustを採用するのか? Webエンジニア目線でRustを考察:WebエンジニアからみたRust(1) Web開発者としての興味、関心に基づきRustを端的に紹介し、その強みや弱みについて理解を深める本連載。第1回では、Rustを採用するモチベーションとは何かを整理、考察します。 Rustへの関心の高まり 近年、プログラミング言語「Rust」に関する重要なニュースを多く見るようになりました。例えば以下のような記事です。 Androidの開発へ「Rust」を導入、なぜなのか Microsoft、「Rust for Windows v0.9」を公開 実装言語を「Go」から「Rust」に変更、ゲーマー向けチャットアプリ「Discord」の課題とは これらの記事が指し示すことは、いわゆる「GAFAM」(Google、Amazon.com、Facebook、Appl
2021年8月18日紙版発売 2021年8月18日電子版発売 B5判/184ページ 定価1,342円(本体1,220円+税10%) ただいま弊社在庫はございません。 Amazon 楽天ブックス ヨドバシ.com Fujisan(定期購読のみ) 電子版 Gihyo Digital Publishing Amazon Kindle 本書のサポートページサンプルファイルのダウンロードや正誤表など 第1特集 Rustでわかるメモリ管理 しくみを知る/アプリを作る/ライブラリを読む プログラミング言語Rustは人気の割に,難しいという意見もよく目にします。その理由の1つは,ライフタイムや所有権といった独自のメモリ管理機能にある様子。 本特集では,そうした難所を乗り越えられるよう,しくみから活用方法まで徹底的に解説します。プログラムにおけるメモリとメモリ管理,そしてRustのメモリ管理のしくみを説明し
KOBA789 です。 今年2月末に前職を退職してからここ半年ほど無職をしていたのですが、いよいよもって無職に飽きてきたので人工衛星を作ることにしました。 実は9月頭から働いています。 株式会社アークエッジ・スペース 次の職場は株式会社アークエッジ・スペースです。東大の研究室発のスタートアップで、衛星バス開発を得意としている会社です。 衛星バスというのは、言ってしまえば人工衛星の OS に相当するものです。 OS に喩えましたが、もちろんそれは単なるソフトウェアではなく物理的な実体を伴うハードウェアとその中で動作するソフトウェアの集合体です。 ちなみにユーザーランドに相当する部分はミッション機器と呼ばれます。 まだまだ人数の少ない会社ですが、業界の土地勘や人脈に富んだ CEO や、人工衛星開発の経験があるエンジニアが揃っており、スタートアップとしては超実力派です。 ArkEdge Spac
This blog post is older than a year. The information provided below may be outdated. In our first post in this series, we discussed the need for proactively addressing memory safety issues. Tools and guidance are demonstrably not preventing this class of vulnerabilities; memory safety issues have represented almost the same proportion of vulnerabilities assigned a CVE for over a decade. We feel th
米Google(グーグル)が2021年4月、AndroidやLinuxカーネルを開発するプログラミング言語に「Rust」を採用すると明らかにした。Rustの採用は米Microsoft(マイクロソフト)もWindows OS開発で進める。CやC++の独壇場だったOS開発に、2015年に「バージョン1」になったばかりの新世代言語であるRustが採用される背景には、サイバー戦争の深刻化がある。 グーグルは2021年4月6日(米国時間)に、Android OSの開発言語にRustを採用すると発表した。また同社は8日後の2021年4月14日(同)に、Linuxカーネルの開発にRustが適していると公式ブログで主張すると共に、Linuxカーネル開発へのRustの採用を目指す団体である「Rust for Linux」に参加したことを明らかにしている。 マイクロソフトはグーグルよりも早い2019年7月の時
With Apple’s recent announcement that they are moving away from Intel X86 CPU’s to their own ARM CPU’s for future laptops and desktops I thought it would be a good time to take a look at the some differences that can affect systems programmers working in Rust. One of the key areas where ARM CPU’s differ from X86 is their memory model. This article will take a look at what a memory model is and how
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く