タグ

rustに関するkwyのブックマーク (15)

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

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

    そもそもプログラミング経験自体無い人がRustを学ぶとき,どんな順序が良いのか
  • これからRustを勉強したいエンジニアにおすすめしたい参考書や教材を紹介します

    こんにちは、加藤(@tomo_k09)です。 PharmaXではバックエンド・フロントエンド開発やスクラムマスターなどをやっています。 PharmaXが提供しているサービスでは、バックエンド開発に主にRuby on Railsが使われていますが、一部の機能はRustで開発されています。 このような理由からRustの経験が浅かった私もコツコツとRustの勉強をしており、 少しずつ学習方法に関する知見が溜まってきました。 そこでこの記事では、Rustをこれから学びたいという方向けに、おすすめの書籍や教材について紹介します。 新しいプログラミング言語はどのように学ぶと良いか 私は新しい言語を学ぶとき、まず基的な文法やどんな特徴を持った言語なのかをひと通り勉強しています。 そしてその言語の概要をつかんだあと、実際に簡単なアプリケーションの実装をはじめて、分からないことがあったらリファレンスを読ん

    これからRustを勉強したいエンジニアにおすすめしたい参考書や教材を紹介します
  • Maestro - Introduction

    2024-01-02T15:00:00+00:00 Maestro is a Unix-like kernel and operating system written from scratch in Rust Thanks to the internet, I can learn how most things I am interested in work. However, something stayed a mystery to me for a long time: computers. Computers are amongst the most complex tools that humanity has ever built. They are a marvel of engineering that we take for granted because we use

    Maestro - Introduction
  • Rust で SQLite を再実装した 2023 - kawasin73のブログ

    気合いで実装、どうもかわしんです。 この記事は Rust Advent Calendar 2023 の6日目 兼 情報検索・検索技術 Advent Calendar 2023 の 6 日目です。 RustSQLite をフルスクラッチで実装しています。 github.com なぜ SQLiteRust で再実装しようと思ったのかについては以前の記事で紹介しています。一言で言えば、誰も RustSQLite を書いている人がいなかったからやってみたのですが、そもそも SQLite が強すぎるということが再実装しているうちにわかってきて絶望しています。 kawasin73.hatenablog.com 4 ヶ月前にこの記事を書いたときは簡単な SELECT 文しか実行できなかったのですが、現時点では SELECT, INSERT, DELETE 文をサポートし、express

    Rust で SQLite を再実装した 2023 - kawasin73のブログ
  • Rustでシンプルなロードバランサーを作成してみた - Qiita

    はじめに この文章はGoでシンプルなL7ロードバランサーを作成するというKasun Vithanageさんの記事を参考にRustでL7ロードバランサーを書いてみたという記事です。ロードバランサーについて、ちゃんと勉強するならそっちを見た方が良いかもしれません。 またこの記事を書いている途中にactix-webのexampleのレポジトリがガッツリとactix-web 2.0-alpha.3に書き換えられました。actix-webの2系はfuturesの0.3系を使っております(actix-webの1系はfuturesの0.1でした)。多いに参考にさせてもらっております。途中までサンプルなしで2.0-alpha.1を強引に動かしていたので非常に助かりました。 成果物 https://github.com/rchaser53/rlb 実装する内容について NginxのようなL7ロードバランサー

    Rustでシンプルなロードバランサーを作成してみた - Qiita
  • Building a Simple DB in Rust - Part 1 - Parsing

    This article is part of the Building a Simple DB in Rust series. While I've used rust for a while and have had a few small projects in it, I felt like I was missing a truly "systems" project. So when I came across this series for making a simple DB in C, I figured why not try to make my basic DB in rust. I will roughly follow the structure of that series at first, but I will most likely deviate an

  • Rustの実用性が理解できる図を作成してみた 〜C/C++/Java/JS/Python/Go/TS/Elixirとの比較〜

    エディタ支援 言語の公式がエディタ支援(LSP等)を提供しているかを示しています。 自動テスト 言語の公式が自動テスト(ユニットテスト等)を備えているかを示しています。 リンタ 言語の公式がリンタを提供しているかを示しています。 ビルドシステム 言語の公式がビルドシステムを提供しているかを示しています。 パッケージマネージャ 言語の公式がパッケージマネージャを提供しているかを示しています。 フォーマッタ 言語の公式がフォーマッタを提供しているかを示しています。 手続き型 言語のプログラミングパラダイムが手続き型プログラミングを強くサポートしているかどうかを示しています。 オブジェクト指向 言語のプログラミングパラダイムがオブジェクト指向プログラミングを強くサポートしているかどうかを示しています。 関数型 言語のプログラミングパラダイムが関数型プログラミングを強くサポートしているかどうかを示

    Rustの実用性が理解できる図を作成してみた 〜C/C++/Java/JS/Python/Go/TS/Elixirとの比較〜
  • Writing NES Emulator in Rustをやった

    Writing NES Emulator in Rustというサイトがある。これはRustでファミコンエミュレータ(通称: NES)を実装する方法をステップバイステップで解説してくれる親切サイトだ。NES初心者でも比較的容易に取り組めるので自力でNESエミュレータの実装するのはちょっと...といった人に特におすすめ。自分は数年前にNESの実装にチャレンジしたが途中で挫折した経験もあったのだけど、このサイトで言われた通り少しずつ進めていくことでなんとか一通り実装をし終えることができた(まぁまだバグだらだけど...)。 今回はその中でも初心者が事前に知っておいたら良さそうと思った知識や概念なんかを雑に書いてみる。 ちなみに各構成要素の詳細な解説や仕様などについては日語・英語問わず先人の遺産がネット上に大量に存在しているのでググってほしい。とりあえず自分が何回も参照したサイトだけ下記に列挙して

    Writing NES Emulator in Rustをやった
  • RustでOSを書いた

    はじめに RISC-V CPUFPGA 上に実装して、マイクロカーネル OS を Rust で書いて動かしてみました。 CPU について RISC-VとChiselで学ぶ はじめてのCPU自作 に沿って RISC-VCPU を作り、機能をエンハンスしました。 乗除算命令、RVC命令、ビット拡張命令の一部を追加 7段パイプライン化 DRAM コントローラ 4KB命令キャッシュ、8KBデータキャッシュ 2ビット分岐予測 周辺コントローラ実装(SDC、UART、タイマー、割込コントローラ) Arty A7-35T という FPGA ボード上で動作させています。 スーパーバイザーモードは実装していないので、仮想メモリは使えません。みんなで仲良くメモリを共有します。 CPU の実装はこちらに置いてあります。書籍のサポートリポジトリの fpga 実装版を fork して機能追加しています。

    RustでOSを書いた
  • Rust for Linuxを手元で試す

    RustLinuxカーネルに組込みプロジェクトRust for Linuxが進行中です。 このプロジェクトLinuxカーネル全体をRustで置き換えるわけではなく、第二言語としてRustを採用してデバイスドライバなどのモジュールを書くことができるようにしようというものです。 RustはOSのような低レイヤーソフトウェアを実装する言語として、C言語に代わる選択肢として注目されてきたわけですが、Linuxのような広く使われているシステムに採用されるとなればかなり熱いですね。 実際にLinuxのメインラインに取り入れられるにはまだまだ課題は多いものの、Linus氏を含むLinuxの開発者からのフィードバックも比較的ポジティブでこれからが注目されています。 そんなRust for Linuxを手元でビルドして動かしてみました。 一応、基的な手順はレポジトリ内のドキュメントにまとまっているの

    Rust for Linuxを手元で試す
  • 世界大戦時の暗号機 Enigma を Rust で実装し、WebAssembly 化してブラウザで動くシミュレータにした

    エニグマのコードはこちら Enigma / エニグマ とは エニグマ は、第二次世界大戦時にドイツ軍などが利用していた電気機械式の暗号機です。 当時のドイツでは、エニグマによる暗号と電気通信とを組み合わせた暗号通信が運用されていました。 エニグマによる暗号を手作業で解読することはほとんど不可能でしたが、イギリスは戦時中に専用の機械を使った解読に成功してドイツ軍の通信内容を掌握したと言われています。 筆者がエニグマを知ったきっかけは、イギリスでのエニグマ解読が題材の『イミテーション・ゲーム / エニグマと天才数学者の秘密』という映画でした。 ベネディクト・カンバーバッチ演じる主人公はチューリングマシンで有名なアラン・チューリングです。興味のある方はぜひ見てみてください。 エニグマについて詳しく知りたい人のための参考資料 エニグマを実装してみたくなった人のために、参考になった資料をまとめておき

    世界大戦時の暗号機 Enigma を Rust で実装し、WebAssembly 化してブラウザで動くシミュレータにした
  • Rustで少しずつリバーシを作ってみた

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

    Rustで少しずつリバーシを作ってみた
  • Rust for Linuxでは独自のallocライブラリを使っている

    Rustを第二言語として採用してデバイスドライバなどのモジュールをRustで書けるようにする「Rust for Linux」が近々マージされる予定だともLinus氏自身が発言しています。 そんな期待のかかるRust for Linuxですが、提案された当初は期待こそされていたものの、様々な懸念点も指摘されていました。 その1つが標準ライブラリの一部であるallocクレートの設計です。 このクレートはヒープ領域を扱うBox、Vec、StringなどRustではお馴染みの構造体を提供しています。 Rustの標準ライブラリはOSのサポートを前提とした構造体も多くあります。そのため、OSそのものを書くようなベアメタルプログラミングにおいて標準ライブラリをそのまま使うことはできません。 使えるのはcoreと呼ばれる依存関係のない全く無いライブラリがありますが、allocはOSのサポートが必要なヒープ

    Rust for Linuxでは独自のallocライブラリを使っている
  • RustでWebアプリケーションのバックエンドを開発するには ─ 型システムの堅牢性と柔軟性を業務システムにも!|ハイクラス転職・求人情報サイト AMBI(アンビ)

    ハイクラス求人TOPIT記事一覧RustでWebアプリケーションのバックエンドを開発するには ─ 型システムの堅牢性と柔軟性を業務システムにも! RustでWebアプリケーションのバックエンドを開発するには ─ 型システムの堅牢性と柔軟性を業務システムにも! 安全性に大きな特徴があるプログラミング言語Rustは、C言語やC++に代わるシステム記述言語として注目されてきました。しかし、その安全性とパフォーマンスの高さにより、ビジネスアプリケーションの構築にも採用されています。この記事ではキャディ株式会社による事例を紹介します。 こんにちは。キャディ株式会社バックエンドエンジニアの松田と申します。 キャディ株式会社では、「モノづくり産業のポテンシャルを解放する」をミッションとして、製造業分野に関連するさまざまなソフトウェアの開発を行っています。また、そのための主要な開発言語としてRustを採用

    RustでWebアプリケーションのバックエンドを開発するには ─ 型システムの堅牢性と柔軟性を業務システムにも!|ハイクラス転職・求人情報サイト AMBI(アンビ)
  • ゼロからのOS自作入門をRustで実装した

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

    ゼロからのOS自作入門をRustで実装した
  • 1