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

Contenu connexe

En vedette

How to add nfc web api to android by using npapi
How to add nfc web api to android by using npapiHow to add nfc web api to android by using npapi
How to add nfc web api to android by using npapiNaruto TAKAHASHI
 
Tizen web app を FireFox OS へ移植する方法を考えた
Tizen web app を FireFox OS へ移植する方法を考えたTizen web app を FireFox OS へ移植する方法を考えた
Tizen web app を FireFox OS へ移植する方法を考えたNaruto TAKAHASHI
 
猫でも分かる Android WebKit
猫でも分かる Android WebKit猫でも分かる Android WebKit
猫でも分かる Android WebKitNaruto TAKAHASHI
 
Japanese input environment on Tizen 2.0 Alpha
Japanese input environment on Tizen 2.0 AlphaJapanese input environment on Tizen 2.0 Alpha
Japanese input environment on Tizen 2.0 AlphaNaruto TAKAHASHI
 
致明天的我们 20120606
致明天的我们 20120606致明天的我们 20120606
致明天的我们 20120606cash0430
 
Live int-website-in-focus-webinar
Live int-website-in-focus-webinarLive int-website-in-focus-webinar
Live int-website-in-focus-webinarAshley Donald
 
The nature nurture issue
The nature nurture issueThe nature nurture issue
The nature nurture issueSnowPea Guh
 
Taller innovacion turistica #rumbo lanzarote con jimmy pons
Taller innovacion turistica #rumbo lanzarote con jimmy ponsTaller innovacion turistica #rumbo lanzarote con jimmy pons
Taller innovacion turistica #rumbo lanzarote con jimmy ponsEsther García
 
Universidad de san bueneventura –cartagena2
Universidad de san bueneventura –cartagena2Universidad de san bueneventura –cartagena2
Universidad de san bueneventura –cartagena2stefany
 
Next-Generation Sequencing
Next-Generation SequencingNext-Generation Sequencing
Next-Generation Sequencingnhussain12
 
Universidad de san bueneventura –cartagena2
Universidad de san bueneventura –cartagena2Universidad de san bueneventura –cartagena2
Universidad de san bueneventura –cartagena2stefany
 
¡Vamos al Cine! RedMas Survey
¡Vamos al Cine! RedMas Survey¡Vamos al Cine! RedMas Survey
¡Vamos al Cine! RedMas SurveyRedMasAdv
 
The Utah Legislature: What Happened in 2012 and How to Protect Your Business ...
The Utah Legislature: What Happened in 2012 and How to Protect Your Business ...The Utah Legislature: What Happened in 2012 and How to Protect Your Business ...
The Utah Legislature: What Happened in 2012 and How to Protect Your Business ...Parsons Behle & Latimer
 

En vedette (20)

How to add nfc web api to android by using npapi
How to add nfc web api to android by using npapiHow to add nfc web api to android by using npapi
How to add nfc web api to android by using npapi
 
Tizen web app を FireFox OS へ移植する方法を考えた
Tizen web app を FireFox OS へ移植する方法を考えたTizen web app を FireFox OS へ移植する方法を考えた
Tizen web app を FireFox OS へ移植する方法を考えた
 
猫でも分かる Android WebKit
猫でも分かる Android WebKit猫でも分かる Android WebKit
猫でも分かる Android WebKit
 
Japanese input environment on Tizen 2.0 Alpha
Japanese input environment on Tizen 2.0 AlphaJapanese input environment on Tizen 2.0 Alpha
Japanese input environment on Tizen 2.0 Alpha
 
Tizen 2.0 overview
Tizen 2.0 overviewTizen 2.0 overview
Tizen 2.0 overview
 
Sensorize FreeRehab
Sensorize FreeRehabSensorize FreeRehab
Sensorize FreeRehab
 
La guerra di piero
La guerra di pieroLa guerra di piero
La guerra di piero
 
Resistencia antimicroviana
Resistencia antimicrovianaResistencia antimicroviana
Resistencia antimicroviana
 
致明天的我们 20120606
致明天的我们 20120606致明天的我们 20120606
致明天的我们 20120606
 
Binder1
Binder1Binder1
Binder1
 
Live int-website-in-focus-webinar
Live int-website-in-focus-webinarLive int-website-in-focus-webinar
Live int-website-in-focus-webinar
 
The nature nurture issue
The nature nurture issueThe nature nurture issue
The nature nurture issue
 
Taller innovacion turistica #rumbo lanzarote con jimmy pons
Taller innovacion turistica #rumbo lanzarote con jimmy ponsTaller innovacion turistica #rumbo lanzarote con jimmy pons
Taller innovacion turistica #rumbo lanzarote con jimmy pons
 
Universidad de san bueneventura –cartagena2
Universidad de san bueneventura –cartagena2Universidad de san bueneventura –cartagena2
Universidad de san bueneventura –cartagena2
 
Next-Generation Sequencing
Next-Generation SequencingNext-Generation Sequencing
Next-Generation Sequencing
 
Universidad de san bueneventura –cartagena2
Universidad de san bueneventura –cartagena2Universidad de san bueneventura –cartagena2
Universidad de san bueneventura –cartagena2
 
Curency album
Curency albumCurency album
Curency album
 
¡Vamos al Cine! RedMas Survey
¡Vamos al Cine! RedMas Survey¡Vamos al Cine! RedMas Survey
¡Vamos al Cine! RedMas Survey
 
Doma natural: Esteban Labari i Lucy Rees
Doma natural: Esteban Labari i Lucy ReesDoma natural: Esteban Labari i Lucy Rees
Doma natural: Esteban Labari i Lucy Rees
 
The Utah Legislature: What Happened in 2012 and How to Protect Your Business ...
The Utah Legislature: What Happened in 2012 and How to Protect Your Business ...The Utah Legislature: What Happened in 2012 and How to Protect Your Business ...
The Utah Legislature: What Happened in 2012 and How to Protect Your Business ...
 

Similaire à Rust samurai lightning talk

プログラミング .NET Framework 第4版
プログラミング .NET Framework 第4版プログラミング .NET Framework 第4版
プログラミング .NET Framework 第4版信之 岩永
 
Protocol Buffers 入門
Protocol Buffers 入門Protocol Buffers 入門
Protocol Buffers 入門Yuichi Ito
 
OSSで楽に作るGo言語クライアントツール
OSSで楽に作るGo言語クライアントツールOSSで楽に作るGo言語クライアントツール
OSSで楽に作るGo言語クライアントツールTano Makoto
 
先取り Thunderbird 3 - 検索エンジン Gloda 搭載で変わるメール管理法 -
先取り Thunderbird 3 - 検索エンジン Gloda 搭載で変わるメール管理法 -先取り Thunderbird 3 - 検索エンジン Gloda 搭載で変わるメール管理法 -
先取り Thunderbird 3 - 検索エンジン Gloda 搭載で変わるメール管理法 -dynamis
 
Solaris 用 Twitterファイルシステムのご紹介
Solaris 用 Twitterファイルシステムのご紹介Solaris 用 Twitterファイルシステムのご紹介
Solaris 用 Twitterファイルシステムのご紹介Kazuyoshi Aizawa
 
深層学習ライブラリのプログラミングモデル
深層学習ライブラリのプログラミングモデル深層学習ライブラリのプログラミングモデル
深層学習ライブラリのプログラミングモデルYuta Kashino
 
ページャ lessを使いこなす
ページャ lessを使いこなすページャ lessを使いこなす
ページャ lessを使いこなすToshiyuki Shimono
 
20130824 Lightweight Language "Go" @LL matsuri
20130824 Lightweight Language "Go" @LL matsuri20130824 Lightweight Language "Go" @LL matsuri
20130824 Lightweight Language "Go" @LL matsuriYoshifumi Yamaguchi
 
20150228_渋谷Webエンジニア朝会LT資料
20150228_渋谷Webエンジニア朝会LT資料20150228_渋谷Webエンジニア朝会LT資料
20150228_渋谷Webエンジニア朝会LT資料慎平 仁藤
 
Cloudn PaaSチームのChatOps実践
Cloudn PaaSチームのChatOps実践Cloudn PaaSチームのChatOps実践
Cloudn PaaSチームのChatOps実践Kazuto Kusama
 
Perlで初めてWebアプリを作った話
Perlで初めてWebアプリを作った話Perlで初めてWebアプリを作った話
Perlで初めてWebアプリを作った話Yuzo Iwasaki
 
Goodpatchに生息するbotたち
Goodpatchに生息するbotたちGoodpatchに生息するbotたち
Goodpatchに生息するbotたちdeepblue will
 
composer-scriptsについて
composer-scriptsについてcomposer-scriptsについて
composer-scriptsについてHiraku Nakano
 
oFの話題が殆ど出ない oF jp Summer Workout
oFの話題が殆ど出ない oF jp Summer WorkoutoFの話題が殆ど出ない oF jp Summer Workout
oFの話題が殆ど出ない oF jp Summer WorkoutTsuubito Ishii
 
自作flutterアプリをリファクタリングしてみた!
自作flutterアプリをリファクタリングしてみた!自作flutterアプリをリファクタリングしてみた!
自作flutterアプリをリファクタリングしてみた!とさ はるき
 
オープンソースBotフレームワークではじめるChatOps
オープンソースBotフレームワークではじめるChatOpsオープンソースBotフレームワークではじめるChatOps
オープンソースBotフレームワークではじめるChatOpsAkihiko Horiuchi
 

Similaire à Rust samurai lightning talk (20)

プログラミング .NET Framework 第4版
プログラミング .NET Framework 第4版プログラミング .NET Framework 第4版
プログラミング .NET Framework 第4版
 
Protocol Buffers 入門
Protocol Buffers 入門Protocol Buffers 入門
Protocol Buffers 入門
 
OSSで楽に作るGo言語クライアントツール
OSSで楽に作るGo言語クライアントツールOSSで楽に作るGo言語クライアントツール
OSSで楽に作るGo言語クライアントツール
 
先取り Thunderbird 3 - 検索エンジン Gloda 搭載で変わるメール管理法 -
先取り Thunderbird 3 - 検索エンジン Gloda 搭載で変わるメール管理法 -先取り Thunderbird 3 - 検索エンジン Gloda 搭載で変わるメール管理法 -
先取り Thunderbird 3 - 検索エンジン Gloda 搭載で変わるメール管理法 -
 
Cppmix 01
Cppmix 01Cppmix 01
Cppmix 01
 
Pythonのすすめ
PythonのすすめPythonのすすめ
Pythonのすすめ
 
Solaris 用 Twitterファイルシステムのご紹介
Solaris 用 Twitterファイルシステムのご紹介Solaris 用 Twitterファイルシステムのご紹介
Solaris 用 Twitterファイルシステムのご紹介
 
深層学習ライブラリのプログラミングモデル
深層学習ライブラリのプログラミングモデル深層学習ライブラリのプログラミングモデル
深層学習ライブラリのプログラミングモデル
 
ページャ lessを使いこなす
ページャ lessを使いこなすページャ lessを使いこなす
ページャ lessを使いこなす
 
20130824 Lightweight Language "Go" @LL matsuri
20130824 Lightweight Language "Go" @LL matsuri20130824 Lightweight Language "Go" @LL matsuri
20130824 Lightweight Language "Go" @LL matsuri
 
20150228_渋谷Webエンジニア朝会LT資料
20150228_渋谷Webエンジニア朝会LT資料20150228_渋谷Webエンジニア朝会LT資料
20150228_渋谷Webエンジニア朝会LT資料
 
Cloudn PaaSチームのChatOps実践
Cloudn PaaSチームのChatOps実践Cloudn PaaSチームのChatOps実践
Cloudn PaaSチームのChatOps実践
 
Perlで初めてWebアプリを作った話
Perlで初めてWebアプリを作った話Perlで初めてWebアプリを作った話
Perlで初めてWebアプリを作った話
 
C#で速度を極めるいろは
C#で速度を極めるいろはC#で速度を極めるいろは
C#で速度を極めるいろは
 
Net fringejp2016
Net fringejp2016Net fringejp2016
Net fringejp2016
 
Goodpatchに生息するbotたち
Goodpatchに生息するbotたちGoodpatchに生息するbotたち
Goodpatchに生息するbotたち
 
composer-scriptsについて
composer-scriptsについてcomposer-scriptsについて
composer-scriptsについて
 
oFの話題が殆ど出ない oF jp Summer Workout
oFの話題が殆ど出ない oF jp Summer WorkoutoFの話題が殆ど出ない oF jp Summer Workout
oFの話題が殆ど出ない oF jp Summer Workout
 
自作flutterアプリをリファクタリングしてみた!
自作flutterアプリをリファクタリングしてみた!自作flutterアプリをリファクタリングしてみた!
自作flutterアプリをリファクタリングしてみた!
 
オープンソースBotフレームワークではじめるChatOps
オープンソースBotフレームワークではじめるChatOpsオープンソースBotフレームワークではじめるChatOps
オープンソースBotフレームワークではじめるChatOps
 

Plus de Naruto TAKAHASHI

CMake multiplatform build-tool
CMake multiplatform build-toolCMake multiplatform build-tool
CMake multiplatform build-toolNaruto TAKAHASHI
 
猫でも分かる Android WebKit ice break
猫でも分かる Android WebKit ice break猫でも分かる Android WebKit ice break
猫でも分かる Android WebKit ice breakNaruto TAKAHASHI
 
Tizen 2.0 alpha でサポートされなかった native api
Tizen 2.0 alpha でサポートされなかった native apiTizen 2.0 alpha でサポートされなかった native api
Tizen 2.0 alpha でサポートされなかった native apiNaruto TAKAHASHI
 
Tizen 2.0 alpha でサポートされなかった native api icebreak
Tizen 2.0 alpha でサポートされなかった native api icebreakTizen 2.0 alpha でサポートされなかった native api icebreak
Tizen 2.0 alpha でサポートされなかった native api icebreakNaruto TAKAHASHI
 
Html5 でアプリを作るということ
Html5 でアプリを作るということHtml5 でアプリを作るということ
Html5 でアプリを作るということNaruto TAKAHASHI
 
Tizen web app について調べたよ
Tizen web app について調べたよTizen web app について調べたよ
Tizen web app について調べたよNaruto TAKAHASHI
 
Linux ユーザーからみた tizen
Linux ユーザーからみた tizenLinux ユーザーからみた tizen
Linux ユーザーからみた tizenNaruto TAKAHASHI
 

Plus de Naruto TAKAHASHI (11)

CMake multiplatform build-tool
CMake multiplatform build-toolCMake multiplatform build-tool
CMake multiplatform build-tool
 
Tizen API
Tizen APITizen API
Tizen API
 
猫でも分かる Android WebKit ice break
猫でも分かる Android WebKit ice break猫でも分かる Android WebKit ice break
猫でも分かる Android WebKit ice break
 
Tizen 2.0 alpha でサポートされなかった native api
Tizen 2.0 alpha でサポートされなかった native apiTizen 2.0 alpha でサポートされなかった native api
Tizen 2.0 alpha でサポートされなかった native api
 
Tizen 2.0 alpha でサポートされなかった native api icebreak
Tizen 2.0 alpha でサポートされなかった native api icebreakTizen 2.0 alpha でサポートされなかった native api icebreak
Tizen 2.0 alpha でサポートされなかった native api icebreak
 
Tizen application
Tizen applicationTizen application
Tizen application
 
Tizen web app
Tizen web appTizen web app
Tizen web app
 
Tizen native application
Tizen native applicationTizen native application
Tizen native application
 
Html5 でアプリを作るということ
Html5 でアプリを作るということHtml5 でアプリを作るということ
Html5 でアプリを作るということ
 
Tizen web app について調べたよ
Tizen web app について調べたよTizen web app について調べたよ
Tizen web app について調べたよ
 
Linux ユーザーからみた tizen
Linux ユーザーからみた tizenLinux ユーザーからみた tizen
Linux ユーザーからみた tizen
 

Dernier

論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 

Dernier (9)

論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 

Rust samurai lightning talk