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
edo cabinet (2009)
Search
John Mettraux
July 19, 2009
Technology
49
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
edo cabinet (2009)
An old deck about Tokyo Cabinet and Ruby (Ruby Kaigi 2009)
John Mettraux
July 19, 2009
More Decks by John Mettraux
See All by John Mettraux
hiroshima.rb #70 pomodoro
jmettraux
0
450
tests and the database
jmettraux
0
400
OpenBSD and Ruby
jmettraux
1
820
Ruby and FFI
jmettraux
0
440
headless in Hiroshima.rb #061
jmettraux
0
410
Ruby methods in ect - Hiroshima.rb #058
jmettraux
0
1.7k
flor - hubristic interpreter - RubyKaigi 2017
jmettraux
1
1.9k
deli @ Hiroshima.rb #057
jmettraux
0
1.6k
suhi215 yahoo proxy in python
jmettraux
0
1.9k
Other Decks in Technology
See All in Technology
現地で盛り上がった WWDC26 Keynote
zozotech
PRO
1
260
2026 TECHFRESH 畢業分享會 - 開發日常大解密!從領域驅動到企業級上線
line_developers_tw
PRO
0
1.3k
SteampipeとExcel Power QueryでAWS構成定義書の作成を自動化する
jhashimoto
0
140
[AWS Summit Japan 2026]迷っているあなたへ_小さな一歩が、やがて自分を助けてくれる
sh_fk2
1
140
Chainlitで作るお手軽チャットUI
ynt0485
0
270
[チョークトーク資料]AWS DevOps Agent を使いこなす / AWS Dev Ops Agent Chalk Talk AWS Summit Japan 2026
kinunori
2
520
AWS Security Hub CSPMの成功・失敗体験
cmusudakeisuke
0
210
失敗を資産に変えるClaude Code
shinyasaita
0
710
入門!AWS Blocks
ysuzuki
1
160
AWS Security Agent といっしょに脅威モデリングをやってみよう
amarelo_n24
0
170
スキルと MCP ツール、責務をどう分けるか? AI が迷わないインターフェース設計の戦略
cdataj
1
1.1k
自宅LLMの話
jacopen
1
620
Featured
See All Featured
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
230
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.8k
Statistics for Hackers
jakevdp
799
230k
Making Projects Easy
brettharned
120
6.7k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.5k
The SEO identity crisis: Don't let AI make you average
varn
0
490
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9.1k
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.2k
The SEO Collaboration Effect
kristinabergwall1
1
490
A Modern Web Designer's Workflow
chriscoyier
698
190k
4 Signs Your Business is Dying
shpigford
187
22k
Transcript
edo cabinet http://tinyurl.com/edocabinet Sunday, July 19, 2009
ruby and tokyo cabinet http://www.flickr.com/photos/kiim/3185168797/ Sunday, July 19, 2009
jmettraux swiss guy wants to write less code ends up
writing too much http://github.com/jmettraux/ Sunday, July 19, 2009
why rufus-tokyo ? need to persist data quickly Sunday, July
19, 2009
Tokyo Cabinet|Tyrant key/value store persistent fast, fast, fast http://tokyocabinet.sourceforge.net/ Sunday,
July 19, 2009
Hirabyashi-san is providing ruby bindings but no “sudo gem install”
and it’s ‘extconf’ and ... http://tokyocabinet.sourceforge.net/rubydoc/ Sunday, July 19, 2009
Sunday, July 19, 2009
what I want { } Sunday, July 19, 2009
Sunday, July 19, 2009
what I want what I built Sunday, July 19, 2009
rufus-tokyo ruby gem Tokyo Cabinet Tokyo Tyrant ruby FFI Sunday,
July 19, 2009
http://blog.headius.com/2008/10/ffi-for-ruby-now-available.html Sunday, July 19, 2009
ruby FFI Sunday, July 19, 2009
FFI Foreign Function Interface common lisp haskell Sunday, July 19,
2009
ruby FFI from Rubinius thanks to Wayne Meissner to jruby
and ruby http://wmeissner.blogspot.com/2008/11/more-on-ruby-ffi.html Sunday, July 19, 2009
ruby FFI an example the ‘crypt’ function Sunday, July 19,
2009
Sunday, July 19, 2009
http://files.getdropbox.com/u/76595/rk_crypt.rb Sunday, July 19, 2009
ruby FFI an example ‘uuid_generate’ Sunday, July 19, 2009
http://files.getdropbox.com/u/76595/rk_uuid.rb Sunday, July 19, 2009
ruby FFI flow 1) attach functions 2) call functions Sunday,
July 19, 2009
ruby FFI an example libevent Sunday, July 19, 2009
http://files.getdropbox.com/u/76595/rk_libev.rb Sunday, July 19, 2009
http://files.getdropbox.com/u/76595/rk_libev.rb Sunday, July 19, 2009
Sunday, July 19, 2009
ruby FFI more fun from ruby to lua Sunday, July
19, 2009
http://jmettraux.wordpress.com/2009/03/16/ruby-to-lua/ Sunday, July 19, 2009
http://github.com/remogatto/ffi-inliner/ Sunday, July 19, 2009
Sunday, July 19, 2009
Tokyo Cabinet|Tyrant Sunday, July 19, 2009
Mikio Hirabayashi is the author mixi.jp is the source http://tokyocabinet.sourceforge.net/index.html
Sunday, July 19, 2009
http://alpha.mixi.co.jp/blog/?author=3 Sunday, July 19, 2009
http://www.slideshare.net/estraier/introduction-to-tokyo-products Sunday, July 19, 2009
Sunday, July 19, 2009
rufus-tokyo Sunday, July 19, 2009
2 products Tokyo Cabinet local file Tokyo Tyrant remote cabinet
file over TCP socket (or Unix socket) Sunday, July 19, 2009
local cabinet lib Sunday, July 19, 2009
remote tyrant server cabinet lib Sunday, July 19, 2009
tt memcached http tyrant server cabinet lib Sunday, July 19,
2009
2 flavours - key/value (abstract) - key/hash of values (table)
Sunday, July 19, 2009
{ k => v } { k => { k
=> v } } hash table B+ tree table fixed length table Sunday, July 19, 2009
{ k => v } { k => { k
=> v } } abstract table Sunday, July 19, 2009
key/value like { } Sunday, July 19, 2009
Sunday, July 19, 2009
key/hash of values (table) like a { pk => {
} } Sunday, July 19, 2009
Sunday, July 19, 2009
Sunday, July 19, 2009
local local remote remote Rufus::Tokyo:: Cabinet Rufus::Tokyo:: Table Rufus::Tokyo:: Tyrant
Rufus::Tokyo:: TyrantTable { } { pk => { } } { } { pk => { } } 1 access 1 access 1+ accesses lua embedded 1+ accesses lua embedded Sunday, July 19, 2009
tt-src $ .configure --enable-lua tt-src $ make tt-src $ sudo
make install http://openwferu.rubyforge.org/tokyo.html Sunday, July 19, 2009
http://jmettraux.wordpress.com/2009/04/07/rufus-tokyo-0112-extlua/ Sunday, July 19, 2009
http://www.igvita.com/2009/07/13/extending-tokyo-cabinet-db-with-lua/ Sunday, July 19, 2009
Sunday, July 19, 2009
Rufus::Edo Sunday, July 19, 2009
FFI + ruby, jruby + no compilation when ‘gem install’
- slower than classical c extension => Rufus::Edo Sunday, July 19, 2009
Sunday, July 19, 2009
local local remote remote Rufus::Tokyo:: Rufus::Tokyo:: Rufus::Tokyo:: Rufus::Tokyo:: FFI Cabinet
Table Tyrant TyrantTable Rufus::Edo:: Rufus::Edo:: Rufus::Edo:: Rufus::Edo:: c ext Cabinet Table ? ? pure ruby NetTyrant NetTyrantTable Sunday, July 19, 2009
ruby to tyrant, the fastest http://github.com/actsasflinn/ ruby-tokyotyrant/ ruby c extension
for Tyrant rufus-tokyo friendly Sunday, July 19, 2009
projects using rufus-tokyo (github search) - wycats/moneta - jcrosby/cloudkit -
elisehuard/tokyo_cabinet4r - terralien/metry - nofxx/tokyo_store - sethyates/content_manager - heycarsten/gcoder - joshbuddy/tokyo_cache_cow - ... Sunday, July 19, 2009
many thanks to Mikio Hirabayashi Zev Blut Ilya Grigorik Justin
Reagor Flinn Muller Wayne E. Seguin Matthew King Yuki Satow Wayne Meissner Kim Erlandsen (picture) and many others Sunday, July 19, 2009