サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
iPhone 16e
blog.rust-jp.rs
これは Rustその3 Advent Calendar 2019 — Qiita の8日目の記事です。 2回シリーズの2つめの記事になります。 前回:Alpine Linuxでも実行できるHello Worldバイナリを作成する 今回:SQLite 3と静的リンクしたバイナリを作成し、Dockerイメージに収める SQLite 3と静的リンクさせる 今回はRustのアプリケーションをSQLite 3ライブラリと静的リンクさせます。 SQLiteはCで書かれた軽量コンパクトなリレーショナルデータベース管理システム(RDBMS)で、主に小規模システムやデスクトップアプリのデータストアとして利用されています。 SQLiteはそれ単独でデータベースサーバとして実行することもできますが、今回はライブラリとしてRustアプリ内に埋め込んで使います。 まずは適当なディレクトリに移動して、パッケージ(bi
これは Rust Advent Calendar 2020 15日目のエントリーです。 飛び入り参加です。 本記事ではApple siliconを搭載したMacにRustの開発環境をセットアップする方法を説明します。 重要:プレビュー版のソフトウェアについて 本記事に掲載されているのは2020年12月22日時点の情報です。 Apple siliconネイティブなソフトウェアを中心にインストール方法を説明していますが、執筆時点ではそれらのほとんどがプレビュー版となっています。 みなさんがこの記事を読まれるときには正式版がリリースされているかもしれません。 他の情報源もチェックされることをお勧めします。 また、プレビュー版のソフトウェアは品質が保証されていません。 リリース前の正式なテストが行われておらず、重大な不具合が出る可能性もあります。 大切なデータは事前にバックアップしておくなど、十分
はじめに これは Rust Advent Calendar 2020 8日目のエントリーです。 飛び入り参加です。 この記事では、Rustコンパイラの実験的なバックエンドである「rustc_codegen_cranelift」について、その特徴と使いかたを紹介します。 以下の英語記事の内容をベースに、筆者なりの説明をいろいろと追加しています。 Inside Rust Blog — Using rustc_codegen_cranelift for debug builds rustc_codegen_craneliftとは? rustc_codegen_cranelift(cg_clif)はRustコンパイラのバックエンドのひとつです。 執筆時点(2020年12月)では実験的な実装という位置づけですが、将来はデバッグビルド時のデフォルトのバックエンドとして使われることを目標にしているそうで
はじめに これはWebAssembly Advent Calendar 2019の8日目のエントリです。 (空いていたので飛び入り参加です) 12月28日にコードを書き始めて、大晦日に記事公開となりました。 この記事ではRust製アプリにwasm形式のプラグインを動的にリンクして実行する方法を紹介します。 WebAssemblyのランタイム環境にはFastlyが開発したLucetを用います。 これによりWebブラウザを通さず、Rustアプリ上で直接WebAssemblyコードが実行できます。 WebAssemblyコードはLucetのコンパイラで事前にネイティブコードにコンパイルしますので、Rustで書かれたコードに近い速度で実行できます1。 プラグインにwasm形式を採用すると、特定の言語に縛られずにプラグインを開発できるというメリットがあります。 またファイルアクセスなどの制限のかかっ
これは Rust その3 Advent Calendar 2019 の24日目のエントリです。 Rustのゼロコスト抽象化が期待どおりに働いていることを、コンパイラが出力した機械語(アセンブリコード)で確認します。 ゼロコスト抽象化とは ゼロコスト抽象化(zero-cost abstraction)とは、Rustが持つ抽象化のしくみが実行時の追加コストなしに動作することです。 ここでいう追加コストとは、メモリ使用量の増加や実行速度の低下などの、いわゆるオーバーヘッドを指します。 では抽象化とはなんでしょうか? プログラミングにおける抽象化とは、共通な部分を抽出し、その詳細をブラックボックス化することです。 これにより仕様変更に強く、再利用性の高いソフトウェアを開発できます。 Rustが提供する抽象化のしくみには、たとえば以下のようなものがあります。 ポリモーフィズム:いくつかの型に共通する
これは Rustその3 Advent Calendar 2019 — Qiita の8日目の記事です。 Rustのx86_64-unknown-linux-muslターゲットを使って、libc(標準Cライブラリ)やSQLiteなどの外部ライブラリに静的リンクしたバイナリを作成する方法を紹介します。 こうして作ったバイナリは、Alpine Linuxを含むさまざまなx86_64 Linux環境で実行できます1。 またUbuntuやCentOSなどの一般的なLinuxディストリビューションを使っている場合でも、実行環境にSQLiteやOpenSSLなどを別途インストールしなくてすみますので、バイナリの配布が楽になります。 さらにこれらを極小のDockerイメージに入れることで、Webアプリケーションなどではデプロイが容易になるかもしれません。 以下の内容を2回に分けて説明します。 今回:Alp
書籍『実践Rust入門』の2-5-4項では、クロスコンパイルを応用した極小のDockerイメージを紹介しています。 書籍内で予告したとおり、その具体的な作成手順を当ブログで紹介する予定です。 実践Rust入門の該当部分 $ docker images hello-sqlite REPOSITORY TAG IMAGE ID CREATED SIZE hello-sqlite latest 0f60b9e23a91 5 minutes ago 1.95MB alpine latest 196d12cf6ab1 2 months ago 4.41MB ubuntu 18.04 ea4c82dcd15a 4 weeks ago 85.8MB hello-sqliteはSQLiteサーバを組み込んだRustサンプルプログラムを実行するためのコンテナです。 x86_64-unknown-linux-
アップデート情報(2019年12月6日) 本記事で紹介した「VS Code Rust (rls)」拡張機能の不具合ですが、2019年9月4日にバージョン0.6.2がリリースされて解決しました。 念のため確認したところ、それ以降の全てのバージョン(以下)は問題ありませんでした。 0.6.2、0.6.3、0.7.0 もしまだ問題のあるバージョン(0.6.0と0.6.1)を使っているなら、拡張機能を最新版にアップデートしてください。 まずは近況など 共著で出版した書籍『実践Rust入門』(以下 本書)ですが、2019年4月26日に電子版が発売されました。 また物理本(紙の本)の発売日は10連休明けの5月8日ですが、東京都内の一部の大手書店では先行販売しているようです。 電子版の販売サイトへは 本書の書籍情報ページ(gihyo.jp)からリンクされています。 Gihyo Digital Publi
2019年5月8日発売予定の『実践Rust入門』(以下 本書)の目次を公開します。 購入前の参考にしてください。 実は本書は私が想像していたのよりずいぶん早く書店に並びそうで、ずっと書きかけのままにしていたこの記事を慌てて仕上げました。 本当は3人の著者についても簡単に紹介しようと思っていたのですが、それはまた別の機会に。 実践Rust入門 [言語仕様から開発手法まで] 著者:κeen、河野 達也(かわの たつや)、小松 礼人(こまつ よしと) 技術評論社(2019年5月8日) 判型:B5正寸(255mm × 183mm) 576ページ 3,980円+税(消費税8%なら税込で4,298円) 大きめの判型でページ数も多いので、かなりの重厚感が出そうです。 同規模の本に『マスタリングTCP/IP(応用編)』や『Linuxカーネル 2.6 解読室』があります。 企画段階ではもっとコンパクトな本に
このページを最初にブックマークしてみませんか?
『blog.rust-jp.rs』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く