Rustで学ぶWebAssembly―入門からコンポーネントモデルによる開発まで(エンジニア選書) [単行本]
    • Rustで学ぶWebAssembly―入門からコンポーネントモデルによる開発まで(エンジニア選書) [単行本]

    • ¥3,30099 ゴールドポイント(3%還元)
    • 在庫あり2024年12月8日日曜日までヨドバシエクストリームサービス便(無料)がお届け
100000009003878022

Rustで学ぶWebAssembly―入門からコンポーネントモデルによる開発まで(エンジニア選書) [単行本]



ゴールドポイントカード・プラスのクレジット決済で「書籍」を購入すると合計10%ポイント還元!書籍の購入はゴールドポイントカード・プラスのクレジット決済がお得です。
通常3%ポイント還元のところ、後日付与されるクレジット決済ポイント(1%)と特典ポイント(6%)で合計10%ポイント還元!詳しくはこちら

価格:¥3,300(税込)
ゴールドポイント:99 ゴールドポイント(3%還元)(¥99相当)
フォーマット:
お届け日:在庫あり今すぐのご注文で、2024年12月8日日曜日までヨドバシエクストリームサービス便(無料)がお届けします。届け先変更]詳しくはこちら
出版社:技術評論社
販売開始日: 2024/10/10
お取り扱い: のお取り扱い商品です。
ご確認事項:返品不可
店舗受け取りが可能です
マルチメディアAkibaマルチメディア梅田マルチメディア博多にて24時間営業時間外でもお受け取りいただけるようになりました

Rustで学ぶWebAssembly―入門からコンポーネントモデルによる開発まで(エンジニア選書) の 商品概要

  • 要旨(「BOOK」データベースより)

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

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

    ・Rustで書いたプログラムから、どうWebAssemblyを作るのか
    ・WebAssemblyを、どうRustのプログラムに組み込むのか
    ・作成したWebAssemblyを、どう使い回すのか
  • 著者紹介(「BOOK著者紹介情報」より)(本データはこの書籍が刊行された当時に掲載されていたものです)

    清水 智公(シミズ ノリタダ)
    WebAssembly Night/Rust.Tokyo。WebAssemblyに関する技術コミュニティ「WebAssembly Night」を2016年より主催。年に数回、オフラインイベントを開催している。また、プログラミング言語Rustの技術カンファレンスである「Rust.Tokyo」の運営も務める。おもにフロントエンドプログラムの開発者体験に対する興味を持つ。趣味はサッカー観戦と読書
  • 著者について

    清水 智公 (シミズ ノリタダ)
    WebAssembly Night / Rust.TokyoWebAssemblyに関する技術コミュニティ「WebAssemblyNight」を2016年より主催。年に数回、オフラインイベントを開催している。また、プログラミング言語Rustの技術カンファレンスである「Rust.Tokyo」の運営も務める。おもにフロントエンドプログラムの開発者体験に対する興味を持つ。趣味はサッカー観戦と読書。X:@chikoski

Rustで学ぶWebAssembly―入門からコンポーネントモデルによる開発まで(エンジニア選書) の商品スペック

商品仕様
出版社名:技術評論社
著者名:清水 智公(著)
発行年月日:2024/10/23
ISBN-10:4297144131
ISBN-13:9784297144135
判型:B5
対象:専門
発行形態:単行本
内容:電子通信
言語:日本語
ページ数:256ページ
縦:23cm
他の技術評論社の書籍を探す

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

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