bloom-lang/bud
{ "createdAt": "2011-01-16T21:07:28Z", "defaultBranch": "master", "description": "Prototype Bud runtime (Bloom Under Development)", "fullName": "bloom-lang/bud", "homepage": "http://bloom-lang.net", "language": "Ruby", "name": "bud", "pushedAt": "2020-09-01T22:53:47Z", "stargazersCount": 866, "topics": [], "updatedAt": "2025-10-25T22:12:20Z", "url": "https://github.com/bloom-lang/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:
-
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.7 and 1.9. Bud also has experimental support for Ruby 2.0. JRuby and other Ruby implementations are currently not supported.
Installation
Section titled “Installation”To install the latest release:
% gem install budTo build and install a new gem from the current development sources:
% gem build bud.gemspec ; gem install bud*.gemNote 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:
% gem install minitest # unless already installed% cd test; ruby ts_bud.rbTo run the unit tests and produce a code coverage report:
% gem install simplecov # unless already installed% cd test; COVERAGE=1 ruby ts_bud.rbOptional Dependencies
Section titled “Optional Dependencies”The bud gem has a handful of mandatory dependencies. It also has one optional dependency: if you wish to use Bud collections backed by Zookeeper, the “zookeeper” gem must be installed.