Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
rustdef: Rust on Jupyter Notebook
Search
Ryosuke Kamesawa
March 24, 2020
Programming
0
47
rustdef: Rust on Jupyter Notebook
Jupyter notebook上でRustを実行できる拡張機能rustdefの紹介です。
Ryosuke Kamesawa
March 24, 2020
Tweet
Share
More Decks by Ryosuke Kamesawa
See All by Ryosuke Kamesawa
推論エンジンMAXの紹介
emakryo
1
560
ニューラルネットワークの量子化手法の紹介
emakryo
3
3.4k
MediaPipeの紹介
emakryo
0
79
Customizing Cargo for Cross Compiling
emakryo
0
38
Feature Store in DRIVE CHART
emakryo
0
64
Feature StoreをRustで実装した話
emakryo
0
48
なぜRustか?
emakryo
0
51
Cargo-makeを使ってみた
emakryo
0
470
Machine Learning on Graph Data @ICML2019
emakryo
0
42
Other Decks in Programming
See All in Programming
俺流レスポンシブコーディング 2025
tak_dcxi
14
8.5k
CSC509 Lecture 14
javiergs
PRO
0
220
全員アーキテクトで挑む、 巨大で高密度なドメインの紐解き方
agatan
8
20k
生成AIを利用するだけでなく、投資できる組織へ
pospome
1
250
モデル駆動設計をやってみようワークショップ開催報告(Modeling Forum2025) / model driven design workshop report
haru860
0
260
LLM Çağında Backend Olmak: 10 Milyon Prompt'u Milisaniyede Sorgulamak
selcukusta
0
120
UIデザインに役立つ 2025年の最新CSS / The Latest CSS for UI Design 2025
clockmaker
18
7.3k
複数人でのCLI/Infrastructure as Codeの暮らしを良くする
shmokmt
5
2.2k
AIエージェントを活かすPM術 AI駆動開発の現場から
gyuta
0
370
30分でDoctrineの仕組みと使い方を完全にマスターする / phpconkagawa 2025 Doctrine
ttskch
3
800
STYLE
koic
0
160
【CA.ai #3】ワークフローから見直すAIエージェント — 必要な場面と“選ばない”判断
satoaoaka
0
240
Featured
See All Featured
Site-Speed That Sticks
csswizardry
13
990
Build The Right Thing And Hit Your Dates
maggiecrowley
38
3k
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
1
94
How GitHub (no longer) Works
holman
316
140k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.3k
Unsuck your backbone
ammeep
671
58k
4 Signs Your Business is Dying
shpigford
186
22k
Leading Effective Engineering Teams in the AI Era
addyosmani
8
1.3k
Building a Scalable Design System with Sketch
lauravandoore
463
34k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
122
21k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
3.8k
Building Applications with DynamoDB
mza
96
6.8k
Transcript
rustdef: Rust on Jupyter notebook @Shinjuku.rs 2020/03/24 Ryosuke Kamesawa
自己紹介 亀澤諒亮 Ryosuke Kamesawa - Twitter: @cruelturtle - Rust 歴
1年 - 仕事で使い始めて半年 - エッジデバイス向けの機械学習モデルの開発 - 趣味 - ボルダリング - 競プロ
Rust on Jupyter notebook??? Jupyter notebook - Pythonのブラウザベースの実行環境 - 画像やグラフ、表の表示が簡単で
機械学習やデータ解析に使われる - 普段Jupyterしか触らないPythonエンジニアにも Rustを普及させたい! → Jupyter上で簡単にRustを動かしたい! (Rust ライブラリのPython wrapperを書くのが面倒)
rustdef 作った https://github.com/emakryo/rustdef - Jupyter の拡張機能として実装 - Jupyter の magic
cellを使ってRustの関数を定義 - 定義した関数をPythonから実行 - ユースケース - Pythonで遅い場合のピンポイントでの高速化 - Rustのライブラリを手軽に Python binding
デモ - 手元にPython環境, Rust環境 (nightly) (Linux or Mac) がある人は $
pip install jupyter rustdef $ jupyter notebook - https://github.com/emakryo/rustdef/blob/master/examples/Get%20started.ipynb
使い方 - %%rustdefで始まるセル内でRustの関数、構造体などが定義できる - #[pyfunction] マクロのついた関数がpythonから呼び出せるようになる - 型の対応 (Python :
Rust) (PyO3に準拠) - int : {i32, i64, isize, u32, u64, usize} - float : {f32, f64} - str : {&str, String} - list : {Vec<_>, &[_]} - dict : HashMap<_, _>
How does it work? 1. magic cell 1つにつきセル内のコードが埋め込まれたcrateを1つ生成 2. maturinを使ってpython
package (wheel) を生成 3. python packageをインストール 4. pyfunction マクロのついた関数をpythonの名前空間にインポート
最後に - rustdef - Jupyter notebook上でRustの関数を定義、実行できる拡張機能 - TODO - Rustの構造体をPythonのクラスとしてexport
- rustdef cell内での実行 - 依存クレートの指定オプションの追加 - ぜひ使ってみてください - Issue/PR お待ちしています
PyO3 / Maturin PyO3 https://github.com/PyO3/pyo3 - PythonのC FFI向けにRustをコンパイルするための便利ライブラリ - 型変換やexternな関数の生成をやってくれる
Maturin https://github.com/PyO3/maturin - PyO3を使って書かれたcrateをpython package(wheel)にビルドするツール
類似ツール Evcxr https://github.com/google/evcxr - Jupyter notebookのkernel (実行エンジン) をRustにする - Rust
only rust-magic https://pypi.org/project/rust-magic - magic cellを使ってRustを実行 - Pythonとの連携はできない