Github is written on Rails, it uses Grit which is the open source library that I work on. Also we have another developer now Scott Chacon who did a lot of work on a pure Ruby implementation of Git, we've actually contracted him and we have replaced a lot of the shell out calls in Ruby you do the shell out, we replaced most of those, possibly all of them by now with just pure Ruby, we go directly to the file system. We read the object data from the Git repository, we read that directly. And by doing that we have been able to get a multiplier of two speed up on the web pages throughout the site. Double the speed of the page load and that's been awesome. So we are using that when you install Git.
We are using that less and less and we are implementing some of that functionality that we need for the site in pure Ruby and that's been really helpful to us. I just finished up an Erlang git daemon Whenever you do a public clone of a project on Github right now that runs an Erlang Git daemon which is just a server for pushing down the repository as a whole there is kind of a back and forth, it has it's own protocol. So I implemented that one in Erlang because we needed to have more flexibility. We have grown to the size where we can't just take all the user directories and put them in a single place because we end up with a very very large directory. So we have to take those and what we do is take an MD5 of the username and then split that up into directories.