Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Prototype Bud runtime (Bloom Under Development)

branch: master

This branch is 0 commits ahead and 0 commits behind master

Fetching latest commit…

Cannot retrieve the latest commit at this time

README
# Bud

This is Bud, a.k.a. "Bloom Under Development".  It is an initial cut at a Bloom
DSL, using Ruby as a setting.

See LICENSE for licensing information.

Language cheatsheet in docs/cheat.md ; see the docs/ directory for other
documentation.

Main deficiencies at this point are:

- Inefficient evaluation: Programs are run using semi-naive evaluation
  strategies, but no further query optimization has been implemented, and little
  effort has been spent in tuning.

- No Ruby constraints: Within Bloom programs the full power of Ruby is also
  available, including mutable state.  This allows programmers to get outside
  the Bloom framework and lose cleanliness.

- Compatibility: Bud only works with Ruby (MRI) 1.8. MRI 1.9, JRuby and other
  Ruby implementations are currently not supported.

## Installation

To install the latest release:
    % gem install bud

To build and install a new gem from the current development sources:
    % gem build bud.gemspec ; gem install bud*.gem

Note that GraphViz must be installed.

Simple example programs can be found in examples. A much larger set of example
programs and libraries can be found in the bud-sandbox repository.

To run the unit tests:
    % cd test; ruby ts_bud.rb

## Optional Dependencies

The bud gem has a handful of mandatory dependencies. It also has two optional
dependencies: if you wish to use Bud collections backed by Zookeeper or Tokyo
Cabinet (the "zktable" and "tctable" collection types, respectively), the
"zookeeper" and/or "tokyocabinet" gems must be installed. Note that before
installing the "tokyocabinet" gem, the Tokyo Cabinet libraries should be
installed first.
Something went wrong with that request. Please try again.