組込みRustドキュメントを和訳したお話

はじめに

組込みRustの(勝手に主要と思っている)ドキュメント3つの和訳が、一通り完了しました。 今後は、upstream変更に対するメンテンナンスをやっていきます。

節目なので、整理しておこうと思います。

和訳も、大本になる文章があるからできるわけで、素晴らしいドキュメントを作成しているRust Embeddedチームに対して、尊敬の念に堪えません。

Rustは簡単な言語ではないので、どうしてもドキュメントが必要です。 ありがたいことに、Rustではドキュメントを書く文化が色濃いです。 今後も、Rust好きな一人として、ドキュメントの和訳や、自身の理解を解説するドキュメントを書いて行こうと思います。 (当面、大きな和訳はやらないと思いますが)

偉大な本家

和訳

和訳レポジトリは下記です。和訳に関するフィードバックはこちらにお願いします。

各ドキュメントの紹介

The embedded Rust book

マイクロコントローラのような「ベアメタル」の組込みシステムでRustを使うための入門書です。

少し注意が必要なのは、Rustの入門書でも組込み開発の入門書でもない、ということです。 Rustの基本文法とがわかった上で、マイコンでRustを使う方法を学ぶためのものです。 手を動かす要素は少なめです。

すでにRustをある程度学んでいて、組込み経験もあるのであれば、本書から入るのがおすすめです。

内容は多岐に渡ります。

  • 環境構築
  • ペリフェラル制御
  • コンパイラを使った静的検証
  • 移植性
  • 並行性
  • コレクション
  • 組込みC開発者へのヒント
  • 相互運用性(FFI
  • 最適化

Discovery

Rustを使った組込みシステム初心者向けのドキュメントです。 多少Rustを知っていれば、組込みシステムの前提知識はあまり必要ありません。 逆に、組込みシステムを知っていれば、Rustの知識は少しだけで困らないと思います。

STMF3Discoveryボードを使って、ひたすら手を動かすため、The embedded Rust bookより、こちらを先に読むと良いかもしれません。

UARTでpinrt!マクロを作る部分は、組込み以外の方も一度見てみる価値があるかと思います。

uprintln! -

Rust、組込み、両方とも中級者だと、物足りない内容かと思います。

Embedonomicon

ひたすらリンカのセクションをいじくり回すドキュメントです。 こちらは、組込みに限らず、ベアメタルでRustを使う方々にとって有用な内容になっています。 特に、メモリレイアウト、mainインタフェースの作り方、はOS自作勢にとって必須科目ですね。

Rustでのセクションやシンボルの扱い方が解説されています。 行数としては大した量を書かないですが、細かくクレートを切ることで、うまくRustプログラミングする方法の参考にもなります。

よもやま話

ポエムです。

和訳を始めたきっかけ

2018年の年末あたり、Rustを仕事にしたいと考えていました。 Rustの勉強ができて、売名できて、普及用のリソースもできる、というやらない理由が見つからない状況でした。

ちょうど年末年始に時間があったので、見切り発車で和訳を開始しました。

tomo-wait-for-it-yuki.hatenablog.com

和訳の進め方

文章が長かったり、構造がわかりにくい時だけ、一度google翻訳に突っ込んで、文脈の理解に役立てました。 驚くほど良い文章が出て来ることがありますが、基本的には、自分で作った訳の方が自然な日本語になります。

たまに出てくるジョークや、洒落た言い回しが厄介でした。 技術的に難しい部分はありましたが、おおよそ、平易な英語で書かれており、それほど読むのに困らない文章でした。