Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Rust tutorial for Pythonista

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest. →

Rust tutorial for Pythonista

Start Python Club 20220310 Pythonistaに送るRust入門

Avatar for Kentaro Matsumoto

Kentaro Matsumoto

March 10, 2022

More Decks by Kentaro Matsumoto

Other Decks in Programming

Transcript

  1. 自己紹介 • 松本健太郎 (Kentaro MATSUMOTO) @matsu7874 • ソフトウェアエンジニア@フォルシア株式会社 ◦ Rustでインメモリデータベースを開発

    ◦ 技術広報・エンジニア採用 • 興味 ◦ Webアプリケーション ◦ 技術広報・エンジニア採用 ◦ 競技プログラミング • #stapy で感想をツイートしてね! 2
  2. 目次 • まずはRustを書いてみる。 • Rustってどんな言語 • 所有権(ownership) • ライフタイム(生存期間, lifetime)

    • パターンマッチ • Cargo • Python と Rust を使う • 日本語のコミュニティ・資料など 3
  3. 7 環境構築 1. https://rustup.rs/ にアクセスしてください。 
 2. 環境に応じてインストールの案内が表示されます 
 a.

    Linux系の場合は下記のコマンドを実行するだけでインストール完了です。 

  4. 9 コンパイルして実行 (cargoの場合) 1. cargo new で新しいプロジェクトを作成 
 2. main.rs

    にプログラムを書く 
 3. cargo runでコンパイル・実行 

  5. 14 Rustの生産性 • ドキュメントの充実
 • コンパイラのエラーメッセージが親切 
 • 標準インストールのパッケージマネージャ・ビルドツール・フォーマッタ 


    • ランゲージサーバ
 https://www.rust-lang.org/learn Python Rust package manager pip, poetry cargo language server Pylance rust-analyzer formatter autopep8, black rustfmt linter Pylint, flake8 clippy
  6. 23 Cargo: 標準のパッケージマネージャ • 標準だからみんなこれを使っている 
 • よく使うコマンド
 ◦ cargo

    new: パッケージを新しく作る 
 ◦ cargo check: コンパイルせずに文法や依存関係のチェックを行う 
 ◦ cargo build: コンパイルする 
 ◦ cargo run: 実行する 
 ◦ cargo run --release: リリースビルド(高速)で実行する 
 ◦ cargo fmt: コード整形(標準搭載なので悩まなくて良い) 
 ◦ cargo clippy: linter、Rustっぽい書き方も教えてくれる。 

  7. 25 Python と Rust を使う • 既存資産使えます。 
 ◦ PyO3という非常に簡単にバインディングを行えるライブラリがあります。

    
 ◦ https://github.com/PyO3/pyo3#using-rust-from-python 
 • Pythonが強い領域でRustを使おうとしている人たちもいます。 
 ◦ 速度の高みを目指す:高速な単語分割器 Vaporetto の技術解説 
 ▪ https://tech.legalforce.co.jp/entry/2021/09/28/180844 
 ◦ 日本語形態素解析器 Sudachi のRust実装 
 ▪ https://github.com/WorksApplications/sudachi.rs 

  8. 26 日本語のコミュニティ • rust-jp slack https://rust-jp.rs/ 
 
 • イベント


    ◦ Shinjuku.rs https://forcia.connpass.com/ 
 ◦ Rust LT https://rust.connpass.com/ 
 ◦ Rustオンラインもくもく会 https://rust-online.connpass.com/ 
 ◦ Rust.Tokyo 年1回のカンファレンス https://rust.tokyo/ 

  9. 28 日本語のおすすめ書籍 • 実践Rust入門[言語仕様から開発手法まで] (2019/5/8) 
 ◦ それまで雰囲気で書いていた部分が理解できました。 
 •

    実践Rustプログラミング入門 (2020/8/22) 
 ◦ いろいろな題材をRustで書いてみる本です。共著者として参加。 
 • コンセプトから理解するRust (2022/2/12) 
 ◦ 比較的薄く、メモリレイアウトが理解しやすい。