Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Small framework to simplify process-to-process communication.
branch: master
Failed to load latest commit information.
benchmark . different result ordering
designs - old experiment
examples Introduces #bidir_server and #bidir_named
lib Updates project to work with modern rubies.
spec
website Introduces #bidir_server and #bidir_named
.gitignore Gemfile.lock should not be under version control
.yardopts + More documentation
Gemfile + Using gemspec for gem versions
Guardfile . better workflow with fail-fast
HISTORY.txt Updates project to work with modern rubies.
LICENSE . well guess what, I've found something else to do
README + bump to 0.5.0
cod.gemspec Removes rake also from gemspec

README

Some people, when confronted with a problem, think "I know, I'll use
multithreading". Nothhw tpe yawrve o oblems.[1]

Don't use threads, use processes. This is the toolkit for interprocess
communication that makes it real simple. A good place to start is the
documentation for the Cod module.

SYNOPSIS

  # Cod's basic elements are channels, unidirectional communication links. 
  pipe = Cod.pipe
  
  # You can use those either directly: 
  pipe.put :some_ruby_object        # Process A
  pipe.get # => :some_ruby_object   # Process B
  
  # Or use them as bricks for more: 
  service = beanstalk.service
  client  = beanstalk.client(pipe)
  
  service.one { |msg| :response }               # Process A
  client.call :ruby_object    # => :response    # Process B
    
STATUS

Working library. Some rough edges and potential for growth. Have a look at the 
Cod module to get started.

Working transports include: 

* process (spawn, connecting to $stdout and $stdin)
* stdio (connects to $stdout and $stdin of current process)
* pipe (akin to IO.pipe)
* tcp (server and client)
* beanstalk (connects to beanstalkd)

At version 0.5.0

(c) 2011 Kaspar Schiess

[1] https://twitter.com/rogerbraun/status/160813717502705664
Something went wrong with that request. Please try again.