Skip to content

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

Notifications You must be signed in to change notification settings

ferventdove/braumeister.org

Repository files navigation

braumeister.org

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:

rake db:seed
rails server

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", then 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

See also

Follow braumeister.org on Twitter @braumeister_org.

About

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

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published