Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Starling Message Queue - please contribute if you want commit access

branch: master

Fetching latest commit…

Octocat-spinner-32-eaf2f5

Cannot retrieve the latest commit at this time

Octocat-spinner-32 bin
Octocat-spinner-32 etc
Octocat-spinner-32 lib
Octocat-spinner-32 spec
Octocat-spinner-32 .gitignore
Octocat-spinner-32 CHANGELOG
Octocat-spinner-32 LICENSE
Octocat-spinner-32 README.rdoc
Octocat-spinner-32 Rakefile
Octocat-spinner-32 starling.gemspec
README.rdoc

Name

Starling - a light weight server for reliable distributed message passing.

Description

Starling is a powerful but simple messaging server that enables reliable distributed queuing with an absolutely minimal overhead. It speaks the MemCache protocol for maximum cross-platform compatibility. Any language that speaks MemCache can take advantage of Starling's queue facilities.

Installation

This fork of the Starling source is hosted at GitHub and can be found at:

http://github.com/starling/starling/tree/master

The original source was to be found at RubyForge but no longer exists there.

GitHub serves gems prefixed by a username to differentiate different forks.
This project can be installed with:

# THIS COMMAND ONE TIME ONLY
gem sources -a http://gems.github.com/

# As often as you like
sudo gem install starling-starling

See http://gems.github.com/ if you want more info about GitHub and gems.

Quick Start Usage

# View the Starling help and usage message
starling --help

# In a console window start the Starling server.  By default
# it runs verbosely in the foreground, listening on 127.0.0.1:22122
# and stores its files under /tmp/starling:
starling

# In a new console test the put and get of messages on a queue:

irb
>> require 'starling'
=> true
>> starling = Starling.new('127.0.0.1:22122')
=> MemCache: 1 servers, 1 buckets, ns: nil, ro: false
>> starling.set('my_queue', 12345)
=> nil
>> starling.get('my_queue')
=> 12345

# You can do a simple loop over a queue with something like:
>> loop { puts starling.get('my_queue'); sleep 1 }
12345
nil
nil
...

For more information run the following in a new console:

'gem server'

This will start a gem server on http://localhost:8808/ which you can view in your
browser to see the RDocs for the gem. Or generate rdocs by running the following
in a new console:

'rdoc'

Using fiveruns memcache-client

memcache-client from fiveruns has a couple of fixed added like supporting failover and retry on failure. This fork of the memcache-client source is hosted at GitHub and can be found at:

github.com/fiveruns/memcache-client/tree/master

It can be installed using:

# THIS COMMAND ONE TIME ONLY gem sources -a gems.github.com/

# As often as you like sudo gem install fiveruns-memcache-client

Known Issues

  • Starling is “slow” as far as messaging systems are concerned. In practice, it's fast enough.

TODO

  • Implement memcached instead of memcache as a client interface (to make it faster)

Authors

  • Blaine Cook <romeda@gmail.com>

  • Chris Wanstrath <chris@ozmm.org>

  • AnotherBritt <?>

  • Glenn Rempe <?>

  • Abdul-Rahman Advany <abdulrahman@advany.com>

Copyright

Starling - a light-weight server for reliable distributed message passing. Copyright 2007-2008 Blaine Cook <blaine@twitter.com>, Twitter Inc.

Something went wrong with that request. Please try again.