僕が先に3時間分くらい勉強しときました。大体こんな感じっていうのと、読んでよかった記事のリンクを貼っとくので、3時間分くらいショートカットしましょう!
どんなもの?
速いし、並行性もいい感じだし、安全なものが作れる。安全じゃない書き方をすると、コンパイラがちゃんと怒ってくれて、さらに親切なアドバイスをくれる。
-
まえがき - The Rust Programming Language
- Rustの日本語のドキュメント。これがあれば英語が苦手な僕でも勉強できそう!無料で!
-
Rustは何が新しいのか(基本的な言語機能の紹介) - いもす研 (imos laboratory)
- Rustのメモリ管理までの歴史やRustの特徴的な言語仕様を説明してくれてる。難しい。
エラーの例
⋊> cargo run
Compiling variables v0.1.0 (/Users/yujiroarai/Projects/variables)
error[E0384]: cannot assign twice to immutable variable `x`
--> src/main.rs:4:5
|
2 | let x = 5;
| -
| |
| first assignment to `x`
| help: make this binding mutable: `mut x`
3 | println!("The value of x is: {}", x);
4 | x = 6;
| ^^^^^ cannot assign twice to immutable variable
何ができるの?
コマンドラインツールもwebアプリもWebAssemblyもラズパイで動くものも作れる。なんでもできる。
-
RustでシンプルなWebサーバー | Then go talk to a wall
- HyperっていうのがWebアプリを作るときのデファクト?(2019.01.14の記事)
-
RustでCLIツールを作り始めてみた
- Goみたいにシングルバイナリを作ってくれるから、コマンドを配布した先にRustの環境がなくてもOK!
こんなとこでつかってる
- npm: レジストリサービス内のCで書いたボトルネックになってるとこを書き換えてる
- Cloudflare
- VOYAGE GROUP: ログ収集ツール
- Figma: real-time multiplayer syncing server
- Mozilla: Servo browser engine,
- Dropbox
0からhello worldまで
# インストール(rustupをインストールする)
$ curl https://sh.rustup.rs -sSf | sh
$ source $HOME/.cargo/env # パスを読み込み
# インストールできてるか確認(バージョンが表示されればOK!)
$ rustc --version
rustc 1.33.0 (2aa4c46cf 2019-02-28)
# ソースコード作成
$ vi main.rs
fn main() {
println!("Hello, world!");
}
# コンパイル
$ rustc main.rs
# 実行
$ ./main
Hello, world!
周辺ツールはどんな感じ?
デフォルトで色々揃えてくれてる!モダンな開発環境がデフォルト。
- Cargo: 依存関係の管理・ビルドツール
- Rustfmt: コードフォーマッター
- Rust Language Server: IDEでエラー表示とコード補完ができるようにする
- rustup: Rubyのrbenvとか、nodejsのnみたいなRustのバージョンと関連するツールを管理するツール
Rustが好きになる記事
-
RustとDNSの1年 | POSTD
- 愛されてるなー
Goと比較してる記事もよく見る
終わり
もうちょっと勉強したら、もっと良い記事書きます!