Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
【Rust × C++】 夢の共演を試した話
Search
lemolatoon
August 10, 2023
Programming
1
1.7k
【Rust × C++】 夢の共演を試した話
2023 セキュリティ・キャンプLT会で話した内容です。
lemolatoon
August 10, 2023
Tweet
Share
More Decks by lemolatoon
See All by lemolatoon
スマホから Youtube Shortsを見られないようにする
lemolatoon
27
34k
お家miniPCを使ってミリしらでkubernetes clusterたててみる
lemolatoon
1
190
no_stdでもasyncしたい
lemolatoon
0
250
Rustの手続きマクロで黒魔術入門
lemolatoon
2
1.3k
Other Decks in Programming
See All in Programming
KoogではじめるAIエージェント開発
hiroaki404
1
230
Claude Agent SDK を使ってみよう
hyshu
0
1.4k
エンジニアに事業やプロダクトを理解してもらうためにやってること
murabayashi
0
100
AI Agent 時代的開發者生存指南
eddie
4
2.2k
AI時代に必須!状況言語化スキル / ai-context-verbalization
minodriven
2
270
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
120
SODA - FACT BOOK(JP)
sodainc
1
9.1k
O Que É e Como Funciona o PHP-FPM?
marcelgsantos
0
240
When Dependencies Fail: Building Antifragile Applications in a Fragile World
selcukusta
0
120
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
450
CSC305 Lecture 13
javiergs
PRO
0
330
What Spring Developers Should Know About Jakarta EE
ivargrimstad
0
650
Featured
See All Featured
For a Future-Friendly Web
brad_frost
180
10k
Stop Working from a Prison Cell
hatefulcrawdad
272
21k
Testing 201, or: Great Expectations
jmmastey
46
7.7k
It's Worth the Effort
3n
187
28k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.7k
Building Adaptive Systems
keathley
44
2.8k
Statistics for Hackers
jakevdp
799
220k
Navigating Team Friction
lara
190
15k
The Cost Of JavaScript in 2023
addyosmani
55
9.1k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
15k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.2k
Transcript
【Rust × C++】 夢の共演を試した話 Y1 OS自作ゼミ lemolatoon
自己紹介 • 名前: lemolatoon • twitter( X ) や github
は lemolatoon • 情報系の学科の大学2年生 • 普段は Rust を触っていることが多いです。
Rust × C++ !? Rust × C の場合 • Rustはシステムプログラミング言語で
C言語の関数などは簡単に呼ぶことができる。 • C言語は、いろいろな言語の間の共通言語のような感じでいろいろな言語から呼べるような仕組みがあ る。 Rust × C++ の場合 • 共通言語であるC言語からC++のクラスなどを使うのが難しいように、 RustからC++を使うのは難しい
CXX crate CXX crateはRust, C++どうしを舞台裏でCに訳してくれる。 現実の翻訳家のようなもの。 * Rustではcrateというものがあり、他言語でいうところのライブラリのようなものである。 * 画像の出典:
cxx.rs
具体例 ← C++のクラスの実装 ↓Rustのライブラリのノリをつくる部分
具体例 Rust から C++ が呼べた! * https://github.com/lemolatoon/cxx-example
舞台裏で作られた”のり”の部分 ↑C++側 Rust側→
実際に使われた例 • autocxx ◦ CXX crateをさらにwrapしたcrate • chromium ◦ https://source.chromium.org/chromium/chromium/src/+/main:third_party/rust/serde_json_
lenient/v0_1/wrapper/lib.rs ◦ https://github.com/chromium/chromium/blob/4184e2582e2a94f607c7eec562502dcd370 d5769/docs/rust.md ◦ 実際にchromiumのソースコード内部で使われている!
None
ありがとうございました。 twitter: @lemolatoon1 github: lemolatoon https://github.com/lemolatoon/cxx-example