Spin とは 2023年03月に 1.0 版がリリースされた WebAssembly でマイクロサービスアプリケーションを作るためのフレームワークです。 フレームワークとなっていますが、WIT(Wasm Interface Type) を生成し、WebAssembly Component Model として動作させるためのライブラリと、それを実行するツール群を合わせたもの といった感じになっています。 リポジトリは以下です。 github.com sdk ディレクトリに、WIT 関連のマクロと、spin_sdk::http::Request などの HTTP や Redis メッセージ用のライブラリがあります。 src ディレクトリに、spin コマンドの実装が入っており、spin/crates に色々なモジュールがあります。全体としてソースも少量で小さなプロジェクトになっています。 W
TechFeed Experts Night Pick up Rust使いは要注目! WebAssemblyのコンポーネントモデルを知る ~TechFeed Experts Night#9講演より 本記事は、2022年11月に開催された「TechFeed Experts Night#9 〜 Rust/WebAssemblyの「いま」を探る」のセッション書き起こし記事「Rust使いは要注目! WebAssemblyのコンポーネントモデルを知る by chikoski@」を転載したものです。オリジナルはTechFeedをご覧ください。 よろしくお願いします。今ご紹介いただきましたchikoski@です。 Rustにはコミュニティ的な関わり方が多くて、Rust.Tokyoというカンファレンスの運営をやっています。WebAssemblyは出たときからずっと仕様を追っていて、コロナの始まる前はWeb
wit-bindgen で WebAssembly Component Model のコンポーネントを作って実行してみました。 WebAssembly Component Model は、WebAssembly で作ったコンポーネントを組み合わせてアプリケーションを作るための仕組みで、基本的には WIT(Wasm Interface Type)と呼ばれる IDL を使ってコンポーネントのインターフェースを定義するようになっているようです。 個人的には、以前からマイクロサービスの次は WebAssembly によるビジネスロジック等のコンポーネント化が来るだろうなと考えていたので、この技術には期待しています。 (a) コンポーネントの作成 とりあえず現時点では、次のような手順でコンポーネントを作れば良さそうです。 wit-bindgen を使ってコンポーネントの元となる WebAssembl
wit-bindgenとjcoでWebAssembly Component Modelに入門する #2023-04-18 WebAssembly Component Modelを追えていなかったのでHello World的なものを動かし概要を理解したい。 目次WebAssembly Component Model #WebAssembly/component-modelにspecは定義されており、現在のPhaseはPhase 1 - Feature Proposal (CG)となっている。 Goals #上記においてGoalsとして以下を挙げている。 ポータブルで効率的なバイナリフォーマットの定義ポータブルで仮想化可能なインターフェースのサポートWebAssemblyのユニークな価値提案の維持Component Modelの段階的定義MVP における usecase #またMVPにおけるu
IoT(モノのインターネット)市場が拡大する中で、エッジ側の機器制御で重要な役割を果たすことが期待されているリアルタイムOS(RTOS)について解説する本連載。第18回は、カーネルやドライバをRustで記述することで、RTOSのレイテンシや安全性の問題をドラスチックにクリアした「Tock」を紹介する。 リアルタイムOS列伝、今回のお題は「Tock」である。開発したのは現在プリンストン大学の助教授で博士のAmit Levy氏である。このLevy氏、助教授業(?)の傍らで2011年にMemCachierという会社を創業しており、現在もここのCEOを務めている。この会社が扱っているのはキャッシュサーバのmemcachedを改良した製品だが、こちらとTockは関係がない。 ⇒連載記事「リアルタイムOS列伝」バックナンバー ms以内のレイテンシと安全性をRTOSで両立するにはどうすればいいのか To
実践的なアプリケーションを書いてみよう! Rustの構造化プログラミング【第二言語としてのRust】 Rustを使って、実際にアプリケーションを3つ書いてみましょう! その前に、プログラムの構造化に必要な手法、ジェネリクス、構造体、列挙型、それにトレイトといった概念についても説明します。 前回の記事では、Rustの基本的な文法や型を説明し、他のプログラミング言語ではあまり見かけない、Rustならではのメモリ管理の仕組み(所有権・参照・ライフタイム)についても解説しました。 今回は、Rustを使って、実際にアプリケーションを書いてみましょう。 制作するのは、Unix環境ではお馴染みの文字列検索プログラムであるgrep(その機能限定版をRustで書いたrsgrep)、アナグラム(単語の文字を入れ替えた単語)を求めるプログラム、そしてHTTP/0.9サーバです。 しかし、アプリケーション開発に入
概要: Rust2018以降、Rustのモジュールシステムは入門しやすく、かつマスターしにくくなりました。そこで本記事では、その両方を達成することを目指しました。 モジュール入門 名前解決の役割と用語 モジュールグラフの構造 インポート解決 可視性 パス解決 名前解決とマクロ 本記事は2017年に書いた記事 (https://qnighy.hatenablog.com/entry/2017/03/27/070000, https://qnighy.hatenablog.com/entry/2017/04/24/070000 ) と同じテーマで、Rust2018を考慮して改めてまとめ直したものです。 モジュールとは モジュールはRustのプログラムを分割する単位のひとつです。ワークスペース・クレート・モジュールという単位になっていると考えてください。 ワークスペースは関連するライブラリ(クレ
Rustとは インストール Hello world Cargoプロジェクト キーワード コメント(//) 値 変数・定数(let, mut, const) 型 基本の型(bool, i16, char, str...) 型変換(as) 構造体(struct) 共用体(union) 列挙型(enum) タプル(tup) 配列(array) ベクタ(vec) ハッシュマップ(HashMap) 文字列(&str, String) 演算子(+ - ...) ヒープ領域(Box) スライス(&var[n..m]) 関数(fn) クロージャー(|...|{...}) マクロ(macro_rules!) 制御構文 条件分岐(if) 繰り返し(while) 繰り返し(for) ループ(loop) ループ制御(break, continue) マッチ(match) インプリメンテーション(impl) トレイ
Conway氏についてですが、公式にアナウンスがでたようです。ご冥福をお祈り申し上げます。 www.math.princeton.edu 2003年に発売された「Linuxから目覚めるぼくらのゲームボーイ!」というC言語でゲームボーイアドバンスで動作する自作ゲームを作成していく書籍があります。 ゲームボーイアドバンスはARM7TDMIというコアを使用しており、Rustで自作ゲームを作ることも可能となっています。 この記事では「Linuxから目覚めるぼくらのゲームボーイ!」のステップをRustで実施するための準備としてライフゲームが動くまでを書いてみます。 動機は今作っているWasmインタープリタをGBAで動かすことができないかの調査です。(たとえLチカレベルでも)AssemblyScriptとかでGBAのゲームかけたら面白くないですか。 成果物 github.com I succeeded
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く