SkillAgentSearch skills...

Starling

Starling Message Queue - please contribute if you want commit access

Install / Use

/learn @starling/Starling
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

= 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

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, 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 memcache-client

memcache-client is now maintained by Mike Perham (http://www.mikeperham.com/)

He is the current maintainer of the gem which is hosted at GitHub and can be found at:

http://github.com/mperham/memcache-client/tree/master

It can be installed using:

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

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

= Known Issues

  • Only tested with Memcache client 1.7.x and with SystemTimer (http://systemtimer.rubyforge.org/)
  • 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

= Copyright

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

View on GitHub
GitHub Stars462
CategoryDevelopment
Updated1mo ago
Forks60

Languages

Ruby

Security Score

95/100

Audited on Feb 27, 2026

No findings