Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

An online package browser for Homebrew, the OS X package manager.

branch: master
README.md

braumeister.org

Build Status Dependency Status Code Climate Coverage Status

braumeister.org is a Rails application that gathers package information from Homebrew, the MacOS X package manager.

Internals

To get information about the packages currently available via Homebrew, the application has its own clone of Homebrew's Git repository. Homebrew's raw package files, the so called formulae (or formulas) which are Ruby classes, are used to gather information from the packages.

Because Homebrew isn't currently optimized for third party access, there is some need to sandbox Homebrew's code, so we don't mess up with our application's code. This is done by forking another Ruby process and using an IO#pipe for inter-process communication (IPC). The formula data is passed as marshalled Hashes from the indexing process (child) to the main process (parent).

There are other, probably better methods of IPC like shared memory, but piping was easy to implement and proved to be fast enough even for full indexing with several hundred formulae.

Local setup

If you clone the repository from GitHub it's pretty easy to get started with a working local copy. You'll need to create a local MongoDB database first:

mongo
> use braumeister
> db.addUser("braumeister", "braumeister")

After that you can run the following commands to run the application locally:

bundle install
rake db:seed
foreman start

Contribute

braumeister.org is an open-source project. Therefore you are free to help improving it. There are several ways of contributing to braumeister.org's development:

  • Use it and spread the word to existing and new Homebrew users
  • Report problems and request features using the issue tracker.
  • Write patches yourself to fix bugs and implement new functionality.
  • Create a fork on GitHub and start hacking. Extra points for using feature branches and GitHub's pull requests.

About the name

"Braumeister" – [ˈbʁaʊmʌɪstəʀ] – is the German word for "master brewer" or "brewmaster", the person in charge of beer production.

License

This code is free software; you can redistribute it and/or modify it under the terms of the new BSD License. A copy of this license can be found in the LICENSE file.

Credits

  • Sebastian Staudt – koraktor(at)gmail.com
  • Andrey Ognevsky – a.ognevsky(at)gmail.com
  • Michiel Staessen – staessenmichiel(at)gmail.com

See also

Follow braumeister.org on Twitter @braumeister_org.

Something went wrong with that request. Please try again.