In the course of writing applications you need more tools than just ruby to get the job done. In many cases ruby will not be the only language involved in the application. This talk will cover non-ruby tools that every rubyist should consider to help solve the problems they face. I will cover several non-traditional queueing, hashing and data storage servers and libraries that will be an asset to any rubyist. The common factor in all these tools, is an interface that is programming language independent, or an interface exists for multiple programming languages
47. 0MQ
Homepage : http://www.zeromq.org/
Data Structure : Queue
Communication : Network
Persistence : Lifetime
API Languages : C, C++, Java, Python, .Net, Mono, Ruby,
Fortran, COBOL
48. 0MQ Bonuses
Implement your own messaging models
Excellent examples
White papers for everything
Fastest. Messaging. Ever.
49. Local Communication
None Snapshot Lifetime
Array N/A ? N/A ? Tokyo Cabinet
Hash N/A ? N/A ? Tokyo Cabinet
List N/A ? N/A ? Tokyo Cabinet
Set N/A ? N/A ? Tokyo Cabinet
Struct N/A ? N/A ? Tokyo Cabinet
Queue N/A ? N/A ? TC / libjlog
50. Network Communication
None Snapshot Lifetime
Array Tokyo Tyrant
Hash TT/Memcache Redis Tokyo Tyrant
List Redis
Set Redis
Struct TT/RDBMS
Queue Beanstalk Beanstalk (1.4) 0MQ
51. Even More!
MongoDB couchdb
nmdb netcdf
luxIO solr
ehcache rabbitmq
flare ejabberd
cassandra Your favorite?
Raise your hand if you have a favorite programming language.
Lower your hand when I say your favorite language.
- Ruby
- Java
- Smalltalk
- Lisp
- Eiffel
- C
- C++
- C#
- Perl
- Php
What are things that are common between languages? Or Pan-language?
Maybe I should say, what are some of the things that you learned in computer science, that had nothing to do with an actual language?
What does everyone currently use to communicate a data structure between applications / processes?
What does everyone currently use to communicate a data structure between applications / processes?
A couple of questions, about 2 widely used cross language tools
Compression key, value stores using bzip or zlib
Server understands not only its own tyrant wire protocol, but the memcached protocol, and it has a RESTful.
use lua in the server, invoke a lua methods
Calls itself a data structure store
libjlog = “journaled log”
libjlog is a pure C, very simple durable message queue with multiple subscribers and publishers (both thread and multi-process safe).