Rustで学ぶWebAssembly ――入門からコンポーネントモデルによる開発まで(技術評論社) [電子書籍]
    • Rustで学ぶWebAssembly ――入門からコンポーネントモデルによる開発まで(技術評論社) [電子書籍]

    • ¥3,300990 ゴールドポイント(30%還元)
    • すぐ読めます
100000086602530749

Rustで学ぶWebAssembly ――入門からコンポーネントモデルによる開発まで(技術評論社) [電子書籍]

清水智公(著者)
価格:¥3,300(税込)
ゴールドポイント:990 ゴールドポイント(30%還元)(¥990相当)
フォーマット:
専用電子書籍リーダアプリ「Doly」が必要です。無料ダウンロード
出版社:技術評論社
公開日: 2024年10月10日
すぐ読めます。
お取り扱い: のお取り扱い商品です。
ご確認事項:電子書籍リーダーアプリ「Doly」専用コンテンツ
こちらの商品は電子書籍版です

Rustで学ぶWebAssembly ――入門からコンポーネントモデルによる開発まで(技術評論社) の 商品概要

  • Webブラウザー上でプログラムを高速に実行するための技術として開発されたWebAssembly(Wasm)ですが,近年では「特定のプログラミング言語・アーキテクチャに依存しない」「プログラムをサンドボックス内で安全に実行できる」という強みに注目が集まっています。さらに,新たに導入される予定の「コンポーネントモデル」によって,大規模なプロジェクトでもWebAssemblyを利用しやすくなる環境が整いつつあります。本書では,プログラミング言語としてRustを採用し,以下の3つの観点で,“新しい”WebAssemblyについて手を動かしながら理解を深めます。
    ・Rustで書いたプログラムから,どうWebAssemblyを作るのか
    ・WebAssemblyを,どうRustのプログラムに組み込むのか
    ・作成したWebAssemblyを,どう使い回すのか
  • 目次

    第1章 プログラミング言語Rustの準備
    1.1 Hello, world!
    1.1.1 変数と束縛
    1.1.2 関数定義と呼び出し
    1.1.3 プリミティブなデータ型
    1.1.4 構造体
    1.1.5 所有権と参照
    1.1.6 変更可能な参照
    1.1.7 関連関数とメソッド
    1.1.8 トレイト:Rustにおけるインターフェース定義
    1.2 エラーハンドリング
    1.2.1 文字列に関する2つの型
    1.2.2 HelloWorldオブジェクトから文字列への変換
    1.2.3 文字列からHelloWorldオブジェクトの復元
    1.2.4 Option型のエラーハンドリング
    1.2.5 Result型のエラーハンドリング
    1.3 ライブラリーの利用
    1.3.1 クレート
    1.3.2 Rustの名前空間
    1.3.3 use宣言
    1.3.4 ferris_says::sayの利用
    1.3.5 実行例
    1.4 まとめ

    第2章 WebAssemblyとは
    2.1 WebAssemblyの特徴
    2.1.1 ビルドターゲット
    2.1.2 信頼できないコードの実行
    2.1.3 WAT:Wasmのテキストフォーマット
    2.2 Wasmの利用例
    2.2.1 マルチプラットフォーム展開の例
    2.2.2 Wasmによるプラグイン開発の例
    2.3 Wasmの標準化プロセス
    2.4 仕様の進化とコンポーネントモデル
    2.4.1 Wasmモジュール
    2.4.2 モジュールとインスタンス
    2.4.3 データ表現に関する仕様の不在
    2.4.4 コンポーネントモデル
    2.5 まとめ

    第3章 RustによるWebAssembly作成入門
    3.1 RustによるWasmコンポーネント作成の流れ
    3.2 cargo-componentのインストール
    3.3 Hello, world!
    3.3.1 cargo componentの利用
    3.3.2 ライブラリークレートの利用
    3.4 grepコマンドクローンを作ろう
    3.4.1 プロジェクトフォルダーの作成
    3.4.2 依存関係の追加
    3.4.3 コマンドライン引数の宣言
    3.4.4 ファイルの読み込み
    3.4.5 サンドボックス化された実行環境
    3.4.6 指定したパターンにマッチする行のみ出力
    3.5 まとめ

    第4章 他のプログラムから利用されるWasmコンポーネント
    4.1 ライブラリーコンポーネント向けのプロジェクト作成
    4.2 WIT入門
    4.2.1 WITによるインターフェース定義
    4.2.2 ワールド:コンポーネントの定義
    4.2.3 パッケージ名
    4.3 ワールドの実装
    4.3.1 greetableインターフェースの実装
    4.4 Wasmを実行するプログラムの作成
    4.4.1 プロジェクトの作成
    4.4.2 ライブラリーコンポーネントの利用
    4.5 ライブラリーコンポーネントの利用(コード生成編)
    4.5.1 WITからのコード生成
    4.5.2 インスタンスとラッパーオブジェクトの作成
    4.5.3 生成されたラッパーオブジェクトの利用
    4.5.4 実行例
    4.6 エクスポートについて
    4.7 まとめ

    第5章 依存関係の解決と合成
    5.1 import:依存関係の記述
    5.1.1 ワールドの追加
    5.1.2 greetプロジェクトが実装するワールドの明示
    5.1.3 hello-worldワールドを実装するプロジェクトの作成
    5.1.4 hello-world-implを実装
    5.2 Wasmコンポーネントの合成
    5.2.1 wacコマンドのインストール
    5.2.2 コンポーネントの合成
    5.3 ホストコードによる実装の提供
    5.3.1 バイナリークレートの作成
    5.3.2 依存するインターフェースの実装
    5.3.3 コンポーネントのインスタンス化
    5.3.4 インスタンスの提供する関数の呼び出し
    5.3.5 実行例
    5.4 WebAssembly System Interface(WASI)
    5.5 wasi:cli/importsの実装
    5.5.1 wasmtime-wasiを依存関係に追加
    5.5.2 Greet構造体にメンバー変数を追加
    5.5.3 WasiViewトレイトを実装
    5.5.4 WASIの実装をLinkerオブジェクトに追加
    5.5.5 実行結果
    5.5.6 CLIアプリの実行
    5.6 まとめ

    第6章 コマンドラインインターフェースアプリケーションの作成
    6.1 グリッチアート
    6.2 本章で作成するCLIアプリ
    6.3 コンポーネントレジストリーへ登録
    6.3.1 Wargとは
    6.3.2 wa.devへのユーザー登録
    6.3.3 Wargクライアントのインストール
    6.3.4 wa.devへCLIから接続する
    6.4 WITによるインターフェース定義
    6.4.1 witファイルを保持するフォルダーの作成
    6.4.2 WITにおけるユーザー定義型
    6.5 WITパッケージをコンポーネントレジストリーに登録
    6.6 インターフェースを実装
    6.6.1 Rustプロジェクトの作成
    6.6.2 インターフェースの実装
    6.6.3 Wasmパッケージの登録
    6.7 CLIアプリの改変
    6.7.1 ワールドの指定
    6.7.2 必要なクレートを依存関係に追加
    6.7.3 プログラムの変更
    6.7.4 Wasmコンポーネントとしてビルド
    6.7.5 Wasmコンポーネントの合成
    6.7.6 実行結果
    6.8 補足として
    6.8.1 WITのデータ型について
    6.8.2 パッケージのバージョン管理
    6.9 まとめ

    第7章 サーバーアプリケーションの開発
    7.1 本章で作成するサーバーアプリケーション
    7.2 Hello, wasi:http/proxy
    7.2.1 プロジェクトの作成
    7.2.2 実装
    7.2.3 Webブラウザーを使った動作確認
    7.2.4 リソース
    7.3 Spinの導入と利用
    7.3.1 Spinの導入
    7.3.2 Spin向けのプロジェクト作成
    7.3.3 hello_wasi_http.wasmの組み込み
    7.3.4 アプリの起動
    7.4 echo APIの作成
    7.4.1 コンポーネントの追加
    7.4.2 spin.tomlの編集
    7.4.3 echo APIの実装
    7.4.4 アプリのビルドと起動
    7.4.5 curlコマンドを使った動作確認
    7.5 グリッチアートを作るAPIの作成
    7.5.1 プロジェクトフォルダーの作成
    7.5.2 Web APIの実装
    7.5.3 コンポーネントの合成
    7.5.4 Spinアプリへの組み込み
    7.6 まとめ

    第8章 Wasmコンポーネントとコンテナーランタイム
    8.1 Wasmコンポーネントを動かすコンテナーイメージ
    8.2 Docker Desktopのインストール
    8.2.1 初期設定
    8.2.2 起動確認
    8.2.3 Wasmコンポーネントの有効化
    8.3 Wasmコンポーネントを動かすコンテナーイメージの作成
    8.3.1 Dockerfileの作成
    8.3.2 コンテナーイメージの作成
    8.3.3 コンテナーイメージの実行
    8.4 Spinアプリを動かすコンテナーイメージの作成
    8.4.1 Spinアプリの整理
    8.4.2 Dockerfileの作成
    8.4.3 コンテナーイメージの作成
    8.4.4 コンテナーイメージの実行
    8.5 まとめ

Rustで学ぶWebAssembly ――入門からコンポーネントモデルによる開発まで(技術評論社) の商品スペック

シリーズ名 エンジニア選書
Cコード 3055
出版社名 技術評論社
本文検索
他の技術評論社の電子書籍を探す
紙の本のISBN-13 9784297144135
ファイルサイズ 9.9MB
著者名 清水智公
著述名 著者

    技術評論社 Rustで学ぶWebAssembly ――入門からコンポーネントモデルによる開発まで(技術評論社) [電子書籍] に関するレビューとQ&A

    商品に関するご意見やご感想、購入者への質問をお待ちしています!