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
how to embed mruby (en)
Search
Tomoyuki Sahara
June 02, 2013
Programming
150
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
how to embed mruby (en)
Japanese version is
https://speakerdeck.com/tsahara/how-to-embed-mruby
Tomoyuki Sahara
June 02, 2013
More Decks by Tomoyuki Sahara
See All by Tomoyuki Sahara
IPv6 家庭用ルータ SWG 報告
tsahara
0
180
IPv6 RFC 改版の提案はなぜ議論紛糾したのか?
tsahara
2
2.2k
DNS と TLS のビミョーな関係
tsahara
1
570
IPv6 Path MTU in the World and Japan
tsahara
1
22k
how to embed mruby
tsahara
2
470
Other Decks in Programming
See All in Programming
型解析で実現する Go の言語内 DSL / Conference に Go! タイムテーブルの歩き方 for Gophers
mazrean
0
100
AIエージェント時代のコードレビューを設計する
nogu66
5
2.4k
「つくるAI」だけではバグは見つからない ~テストに必要な「見つけるAI」を分離させる戦略~
mfunaki
0
230
Seeing Through Serverless: Observability for AWS Lambda with ADOT and CloudWatch Application Signals
seike460
PRO
1
110
Jindong: Introducing Declarative Haptics in Compose Multiplatform
l2hyunwoo
0
140
Kiroで創り、AgentCoreで繋ぐ!AWSで実践する「AI-DLC」から「AIエージェント統合」までの最新地図
licux
1
220
まずはプロンプトガイドを読もう、話はそれからだ
kiakiraki
1
250
Claude Codeを組織的に動かして月400PRを実現した話
happy_ryo
0
250
[PyCon KR 2026] More Variants, More Diversity for AI Accelerators
achimnol
0
130
業務時間外もAIに働いてもらう話
colorful12
3
9.9k
go-spidermonkeyでAIエージェントのCode Modeを実装する
syumai
3
1.5k
T3DD26: From RAGs to Riches
martinhelmich
0
130
Featured
See All Featured
AI: The stuff that nobody shows you
jnunemaker
PRO
9
960
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
400
Side Projects
sachag
455
43k
Joys of Absence: A Defence of Solitary Play
codingconduct
1
460
The Pragmatic Product Professional
lauravandoore
37
7.4k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
232
55k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
6.1k
How to Talk to Developers About Accessibility
jct
2
530
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
500
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
230
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
850
Transcript
How to embed mruby Tomoyuki Sahara (
[email protected]
) Internet Initiative Japan
Inc. $PQZSJHIU $ *OUFSOFU*OJUJBUJWF+BQBO*OD"MMSJHIUTSFTFSWFE
Notice 5IFXPSLIBTEPOFJO/PW IBMGPGZFBSBHP
What is mruby? mruby is the lightweight implementation of the
Ruby language... https://github.com/mruby/mruby google://mruby/
CPU: ARM 32bit Memory: 128MB FlashROM: 32MB OS: NetBSD SA-W1
(www.sacm.jp/#saw1) Router built with mruby
Why mruby? interface.ge1.ipv4.address : 192.168.0.1/24 interface.wlan0.service : enable interface.wlan0.ssid :
guest interface.wlan0.security : wpa-psk-aes route.ipv4.0.destination : default route.ipv4.0.gateway : 100.100.0.1 dhcp.server.0.interface : wlan0 dhcp.server.0.pool.address : 192.168.0.4/24 dhcp.server.0.pool.count : 100 Configuration parse/validate/evalute/execute mruby!
Running mruby CPU ARM 32bit is not uncommon Memory 128MB
is large enough FlashROM 32MB is tight OS NetBSD is a kind of Unix ≒ a (poor) PC ≒ a (poor) PC Not difficult to run mruby on it.
What we have done: • ػೳ֦ு • ෆ۩߹मਖ਼ • ҆ఆ൛ϦϦʔεͷ࡞
• Build a firmware
Of cource it runs NetBSD
Import Software NetBSD Firmware OpenSSL KAME NTPD Quagga Proprietary Code
mruby
Getting source code % wget http://www.openssl.org/ source/openssl-1.0.1e.tar.gz
Stable version of mruby % wget http://www.mruby.org/ source/mruby-1.0.0.tar.gz EPFTOPUFYJTU
What we have done: • ػೳ֦ு • ෆ۩߹मਖ਼ • Make
a stable version ←New! • Build a firmware
mruby on github
iij/mruby
3 branches (and others) #SBODI 6TBHF NBTUFS NSVCZNSVCZ JJK NBJOEFWFMPQNFOU
T TUBCMFWFSTJPO PUIFST QVMMSFRVFTU FUD
NSVCZNSVCZ JJKNSVCZ NBTUFS NBTUFS JJK T EBJMZ BVUPNBUJDNFSHF EBJMZ BVUPNBUJD
PSCZIBOE BTOFFEFE SFWJFXFE
What we have done: • ػೳ֦ு • ෆ۩߹मਖ਼ • Make
a stable version • Build a firmware
Import Step 1. work=$HOME/mruby-import % cd $work % git checkout
-b s1
Import Step 2. % make % make test % ./test/posix/all.sh
Import Step 3. usr=$NetBSD/usr.bin/mruby % cp src/y.tab.c mrblib/mrblib.c $usr %
vi $usr/Makefile
Import Step 4. dist=$NetBSD/dist/mruby % make clean % rm -r
$dist/* % cp -r * $dist
Import Step 5. % cd $dist; svn add ... %
svn ci $dist $usr
What we have done: • ػೳ֦ு • ෆ۩߹मਖ਼ • Make
a stable version • Build a firmware
Bug, Bug, Bug!
What we have done: • ػೳ֦ு • Fix bugs ←New!
• Make a stable version • Build a firmware
To fix bugs • Write debugging tools: • backtrace •
“require” to module • disassembler (app/mrbdump) • testing framework (mruby-mtest) • debugger (mruby-mdebug)
What we have done: • ػೳ֦ு • Fix bugs •
Make a stable version • Build a firmware
“mruby is useless because *** class/ method is missing!”
What we have done: • Add features ←New! • Fix
bugs • Make a stable version • Build a firmware
Enhancement • Create modules dependent on Unix • IO, File,
Socket, Regexp, Errno, ... • Enhance built-in modules • Array, String, ...
iij/mruby-* mruby-io mruby-socket mruby-regexp-pcre mruby-errno mruby-simple-random mruby-env mruby-require mruby-pack mruby-mock
mruby-syslog mruby-mtest mruby-tempfile mruby-process mruby-pcap mruby-dir (more...)
Ship it! • Add features • Fix bugs • Make
a stable version • Build a firmware
Future work • Make more use of mruby • Create
a new stable branch: s2