Rust samurai lightning talk

6,398 views

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
6,398
On SlideShare
0
From Embeds
0
Number of Embeds
4,551
Actions
Shares
0
Downloads
2
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Rust samurai lightning talk

  1. 1. Rust SamuraiLightning TalkWhy Interested in RustNaruto TAKAHASHI(tnaruto@gmail.com)
  2. 2. 2Who’s Guy?Naruto TAKAHASHI(@TNaruto)• Mail: tnaruto@gmail.com• Blog: http://eflmemo.hatenablog.com/• Company: Turbo Systems Co, Ltd.Interesting Keyboards• EFL(Enlightenment Foundation Libraries)• Tizen• WebKit
  3. 3. 3思うところ• アプリ層はそろそろ C/C++ 以外で記述したい。• メモリ管理したくないし、速度も欲しい。(せめてバイナリで)• LL じゃ速度が足りない• C/C++ で書かれたライブラリを使いたい。• Ffi がある言語が良い。• つまり Rust が良い。
  4. 4. 4Rust に注目するところ• ffi が標準搭載• Rust Foreign Function Interface Tutorial• http://static.rust-lang.org/doc/tutorial-ffi.html• Syntax が C に近い。• 予約語が C に似てる• Ffi も書きやすい。1 Python, ruby の ffi のコード見たけど・・・(-_-;
  5. 5. 5なぜ Go ではない?• Rust は標準で ffi が搭載している。• Go は別モジュール扱いのはず。• 言語設計のうちから ffi を検討している Rust の方が扱いやすい?
  6. 6. 6FFI でやりたいこと• EFL の Rust バインディング• 水色のダイヤログをバインディングしたい
  7. 7. 7Eet バインディングを試したよ。• EET• シリアライズライブラリ。• 構造体をファイルに落とせたりも出来るよ。• 戻すのも出来るよ。• Enlightenment の設定ファイルは全部 eet 使われてるよ。
  8. 8. 8Eet バインディング 3,4時間ぐらい悩んでみました。
  9. 9. 9
  10. 10. 10バインディング結果• 動かせませんでした。• Rust 難しくね?
  11. 11. 11何が難しかった?• ハンドラ(構造体の実態を見せないための手法)のポインタを Rust側でどう持って良いのかわからない。• ライブラリで内部宣言している構造体とかを Rust 側で宣言する必要があるの?• ライブラリの Enum 宣言• Rust 側でも同じ値で宣言しないといけないの?• Rust の知識をそんなに持ってなかった。• Rust のヒープメモリの扱いとか把握できないと触れないかも。
  12. 12. 12Rust の FFI のチュートリアルが update したので見てみます。• Snappy という圧縮ライブラリの ffi の作成方法に変わってる!• 参考になることがあるかも!

×