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
Martin Sústrik - ZeroMQ / Nanomsg (WebElement #29)
Search
WebElement
June 19, 2014
Programming
1
250
Martin Sústrik - ZeroMQ / Nanomsg (WebElement #29)
WebElement
June 19, 2014
Tweet
Share
More Decks by WebElement
See All by WebElement
Marián Bodnárik - Ako podnikať nielen na webe (WebElement #11 Prešov)
webelement
0
310
Tomáš Kulich - Dart (WebElement #27)
webelement
0
270
Matúš Duchoň - Chrome Apps (WebElement #4 Prešov)
webelement
0
260
Igor Hlina - Coffeescript (WebElement #26)
webelement
1
100
Milan Kurečko - Foundation (WebElement #3 Prešov)
webelement
0
270
Other Decks in Programming
See All in Programming
見えないメモリを観測する: PHP 8.4 `pg_result_memory_size()` とSQL結果のメモリ管理
kentaroutakeda
0
400
Webエンジニア主体のモバイルチームの 生産性を高く保つためにやったこと
igreenwood
0
340
Semantic Kernelのネイティブプラグインで知識拡張をしてみる
tomokusaba
0
180
責務を分離するための例外設計 - PHPカンファレンス 2024
kajitack
6
1.4k
Recoilを剥がしている話
kirik
5
6.8k
Итераторы в Go 1.23: зачем они нужны, как использовать, и насколько они быстрые?
lamodatech
0
840
競技プログラミングへのお誘い@阪大BOOSTセミナー
kotamanegi
0
360
「とりあえず動く」コードはよい、「読みやすい」コードはもっとよい / Code that 'just works' is good, but code that is 'readable' is even better.
mkmk884
3
500
短期間での新規プロダクト開発における「コスパの良い」Goのテスト戦略」 / kamakura.go
n3xem
2
170
暇に任せてProxmoxコンソール 作ってみました
karugamo
2
720
フロントエンドのディレクトリ構成どうしてる? Feature-Sliced Design 導入体験談
osakatechlab
8
4.1k
Scalaから始めるOpenFeature入門 / Scalaわいわい勉強会 #4
arthur1
1
340
Featured
See All Featured
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
127
18k
Designing for humans not robots
tammielis
250
25k
Fontdeck: Realign not Redesign
paulrobertlloyd
82
5.3k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
45
2.2k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
356
29k
Agile that works and the tools we love
rasmusluckow
328
21k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
44
9.3k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
10
810
Why You Should Never Use an ORM
jnunemaker
PRO
54
9.1k
GraphQLの誤解/rethinking-graphql
sonatard
67
10k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
5
450
The Cost Of JavaScript in 2023
addyosmani
45
7k
Transcript
ØMQ / nanomsg Martin Sústrik www.250bpm.com
[email protected]
None
require 'rubygems' require 'ffi-rzmq' context = ZMQ::Context.new socket = context.socket(ZMQ::REQ)
socket.connect('tcp://localhost:5559') socket.send_string("Hello") puts socket.recv_string ('')
require 'rubygems' require 'ffi-rzmq' context = ZMQ::Context.new socket = context.socket(ZMQ::REP)
socket.bind("tcp://*:5559") while true do request = socket.recv_string ('') socket.send_string("World") end
Scalability Protocols (Messaging Patterns)
None
None
require 'rubygems' require 'ffi-rzmq' context = ZMQ::Context.new socket = context.socket(ZMQ::REQ)
socket.connect('tcp://192.168.0.1:5559') socket.connect('tcp://192.168.0.2:5559') socket.connect('tcp://192.168.0.3:5559') while true do socket.send_string("Hello") puts socket.recv_string ('') end
None
require 'rubygems' require 'ffi-rzmq' context = ZMQ::Context.new socket = context.socket(ZMQ::PUB)
socket.bind("tcp://*:5559") while true socket.send_string("Hello") sleep (1) end
require 'rubygems' require 'ffi-rzmq' context = ZMQ::Context.new socket = context.socket(ZMQ::SUB)
socket.connect("tcp://srv.example.org:5559") socket.setsockopt(ZMQ::SUBSCRIBE, "") while true do puts socket.recv_string ('') end
None
None
None
Example Multiplayer Game
None
None
None
Scaling Up (devices)
None
None
Theoretical Background
None
None
None
Work in Progress
IETF TAPS WG Coroutines in C Code Generation Monitoring Security
Transport agnostic L4 API https://github.com/sustrik/mill https://github.com/sustrik/ribosome
nanomsg.org zeromq.org