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
これはRust Advent Calendar 2017 11日目の記事です。 今回はRustを用いてファイルシステムを作ることができるrust-fuseを紹介します。 FUSE(Filesystem in Userspace)とは? FUSEは、通常カーネル空間で提供するファイルシステムの機能をユーザ空間上で定義し動作させることができるものです。 ユーザ空間とカーネル空間の橋渡しをするインターフェースとカーネル内での処理を提供しています。実装者はカーネルのコードをいじることなくファイルシステムを作成できます。 リファレンス実装はlibfuseとして提供されています。 FUSEを使ったファイルシステムとしては、SSHFSやGlusterFS、gitfsなどがあります。 rust-fuse rust-fuseはRustでFUSEを実装できることを目的としたcrateで、単純なlibfuseの
話題になってたのは去年くらいな気もするし今さら感はあるけど、今だからこそすごい化けてたりしないかなーという期待も込めて。 個人的には、WASMでWebアプリを作る時代になるとはあまり思えてないけど、まぁ試しておく価値はあるかなと思いその学びをメモ。 yewstack/yew GitHub - yewstack/yew: Rust / Wasm framework for building client web apps RustでReactっぽいコードが書けて、それがWASMで動くので、型ありでちょっぱやなWebアプリが作れるぜ!っていうやつ。 今のバージョンは`0.11.0`で、最小のコードはこんな感じ。 use yew::{html, Callback, ClickEvent, Component, ComponentLink, Html, ShouldRender}; struct
WebGPU is a new graphics and compute API designed from the ground up by a W3C community group. It's a successor to WebGL, which also has a chance to become a standard on native platforms. We are going to talk about the API itself as well as our Rust-based implementation "wgpu". Expected prior knowledge / intended audience: basic familiarity with one of the graphics APIs is good but not required. W
注意: 最新版のドキュメントをご覧ください。この第2版ドキュメントは古くなっており、最新情報が反映されていません。リンク先のドキュメントが現在の Rust の最新のドキュメントです。 すぐにはわかりにくいかもしれませんが、Rustプログラミング言語は、エンパワーメント(empowerment)を根本原理としています: どんな種類のコードを現在書いているにせよ、Rustは幅広い領域で以前よりも遠くへ到達し、 自信を持ってプログラムを組む力を与え(empower)ます。 一例を挙げると、メモリ管理やデータ表現、並行性などの低レベルな詳細を扱う「システムレベル」のプログラミングがあります。 伝統的にこの分野は難解で、年月をかけてやっかいな落とし穴を回避する術を習得した選ばれし者にだけ可能と見なされています。 そのように鍛錬を積んだ者でさえ注意が必要で、さもないと書いたコードがクラッキングの糸口に
Rust 🦀 and WebAssembly 🕸 This small book describes how to use Rust and WebAssembly together. Who is this book for? This book is for anyone interested in compiling Rust to WebAssembly for fast, reliable code on the Web. You should know some Rust, and be familiar with JavaScript, HTML, and CSS. You don't need to be an expert in any of them. Don't know Rust yet? Start with The Rust Programming Lang
この文章は Rust を用いた WebAssembly の開発環境を構築する手法を紹介するために作成されました. ハッシュタグ: #WASMの本紹介記事: WebAssembly 開発環境構築の本を公開しました - mizdra's blog# 本書の目的Rust を用いた WebAssembly の開発環境を構築する手法を知ることモジュールバンドラと連携する方法を知ることTypeScript と連携する方法を知ることWebAssembly を利用していて陥りやすい罠を知ることWebAssembly に関する情報を調べる方法を身につけること# 本書でやらないことWebAssembly/Rust/JavaScript の文法や機能の解説が目的ではない Rust からコンパイルして生成された WebAssembly を JavaScript から利用する方法を解説する文法や機能については, W
Rustの特徴のひとつは、所有権(ownership)・移動(move)・借用(borrow)の概念です。これらがコンパイル時に厳格にチェックされることにより、古くから未定義挙動でプログラマを悩ませてきたダングリングポインタなどの問題がなくなり、メモリ安全性がもたらされます。 しかし一方で、自分で多少複雑なデータ構造を定義しようとする場合にはコンパイルを通すだけでもかなりの知識・力量が要求されます。 この(不定期)連載では、 Rustではじめるデータ構造とアルゴリズム と題し、プログラミングコンテストなどでよく見かける基礎的なデータ構造とアルゴリズムを、できるだけシンプルにRustで実装していきます。 &, &mut, Box, Rc, Cell, RefCell などの使い分けや、なぜそれを使う必要があるかの解説を、実例を通して行います。 第1回は、最もシンプルな木構造である 二分木 を
マイクロカーネルは浪漫に溢れる非常に作りがいのあるソフトウェアです。この記事は,「マイクロカーネルベースのOSの一から作ってIaaSで動かす」ことを目標に作ったマイクロカーネルベースのOS Resea(りーせあ)の設計と実装について軽くまとめた物です。 ソースコードはGitHubにあります。 マイクロカーネルとは Linuxのようなモノリシックカーネルでは色んな機能がカーネル空間で動きますが,マイクロカーネルではユーザプロセスたちが互いに通信しながらOSを作り上げます。プロセス・スレッド・仮想メモリ管理,プロセス間通信,タイマーといった必要最低限の機能だけをカーネルが担います。デバイスドライバやファイルシステムといった残りの機能は,独立したユーザプロセスとして動きます。たとえデバイスドライバが暴走しても他のコンポーネントを壊すことはないのです。マイクロカーネルは信頼性が高く,疎結合で美しい
rchaser53noMacBook-Pro:rj rchaser53$ javap -v java/io/PrintStream Classfile jar:file:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/rt.jar!/java/io/PrintStream.class Last modified 2017/07/21; size 9048 bytes MD5 checksum f62b2b102171bb9cd2cefa5efcf0e487 Compiled from "PrintStream.java" public class java.io.PrintStream extends java.io.FilterOutputStream implements java.lan
この記事はAptpod Advent Calendar 2019の3日目の記事です。 先端技術調査グループの大久保です。 最近はWebAssemblyが注目されるようになり、弊社でもWebフロントエンド側での軽量化・高速化に応用できないか検討をしています。 そこで、今回はWebSocketのechoクライアントをRustとGoで作成し、wasmへコンパイルした時のファイルサイズを比較してみます。現状では、wasm内から直接WebSocketを取り扱う方法は無いらしいので、JavaScriptのAPIを呼び出してWebSocket通信を実現します。 Goでの実装 私はGoが書けないため、先輩からもらった以下のコードを使わせてもらいました。適当にwstest.goと名前を付けて保存します。 package main import ( "fmt" "syscall/js" ) func prin
On this coming Thursday, November 7, async-await syntax hits stable Rust, as part of the 1.39.0 release. This work has been a long time in development -- the key ideas for zero-cost futures, for example, were first proposed by Aaron Turon and Alex Crichton in 2016! -- and we are very proud of the end result. We believe that Async I/O is going to be an increasingly important part of Rust's story. W
前置き これはRustを学びたいけどどうやって勉強しようかという人向けの記事です。 自分の経験からここ先に読んどきゃよかったとか、ここ読んどけばもっと楽だったとかそんなのをいろいろまとめてあります。もう一度Rustを学び直すならどうするかなー、と考えながら書きました。なお大半が英語の資料です。 英語か・・・と思った方はyukiさんのRust を始めるための資料集もどうぞ。 対象はRuby、Pythonなどの高レベル言語をすでに習得してる人。 前準備 Rustの主な特徴を知っておきましょう。Rustは他の言語にない考え方や特徴が多いので先に知っておくと良いです。とりあえずinto_rust() : screencasts for learning Rustを全部見ましょう 基礎知識の習得 The Bookと呼ばれる公式の入門書があります。まずこれを読みましょう。日本語訳もありますが英語版のほ
Rust 🦀 and WebAssembly 🕸 This small book describes how to use Rust and WebAssembly together. Who is this book for? This book is for anyone interested in compiling Rust to WebAssembly for fast, reliable code on the Web. You should know some Rust, and be familiar with JavaScript, HTML, and CSS. You don't need to be an expert in any of them. Don't know Rust yet? Start with The Rust Programming Lang
Rust + Yew = WebAssembly でかんばんライクなタスク管理アプリを作ってみました。 YewはRustで書かれたフロントエンド向けのフレームワークです。 書かれたコードはWebAssemblyに変換されて、ブラウザ上で実行することができます。プロジェクトのREADMEに「ElmとReactに影響を受けた」と書かれているように、JSX風のHTMLを書けるようなマクロが用意されていて、Rustのコード内にHTMLっぽく表現でビューを書くことができます。 また、Elmアーキテクチャのように、モデルとビューがあり、メッセージによって状態の更新がされるようになっています。 というわけで、以前、このブログでsakiが書いた「Vue.js でかんばんライクなタスク管理アプリを作ってみました。」という記事を参考に、見ためがほとんど同じようなかんばんライクなタスク管理アプリ (タスクボード
Rustはデフォルトでは本来の力を発揮しない。試しに手頃なベンチマークを3個くらい試したらだいたい20~100倍程度遅かった。 「Rustで ○○ を高速にする方法」が知りたい人は、まず、Rustコンパイラが本来の力を発揮しているか確認したほうがよい。 Cargoの場合 Cargoでは --release をつけると本来の力を発揮してコンパイルする。 $ cargo build --release $ cargo run --release rustcを直接実行する場合 $ rustc -C opt-level=3 -C debug_assertions=no 上記のオプションを設定しない理由 逆に、上記のオプションを使わない理由としては、デバッグモードのほうが諸々のチェックが実行されてよいというのが挙げられる。 例えば、整数演算のオーバーフローはデバッグモードでは捕捉される。なお、オーバ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く