I have started working on a project to detect sybils and other anomalies in the Tor network. Once the algorithms are implemented, I want to run them over historical data. While Stem is great, it's implemented in an interpreted language which makes it a little bit too slow for my needs. As a result, I started working on a simple parser implemented in Go: https://gitweb.torproject.org/user/phw/zoossh.git/ Here's a mirror on GitHub: https://github.com/NullHypothesis/zoossh
At the moment, the parser partially supports historical network consensuses and router descriptors as archived by CollecTor. I hope to be able to add more file formats soon. Also, the API is not yet stable, so it's not wise to use it just yet. However, I wanted folks to know that I'm working on that and I'm always happy to get feedback and patches.
Cheers, Philipp