I've found Snark but it hasn't been updated since 2003 there have been some important changes to the protocol since then (DHT most importantly). I know I can also use the Azureus core but I'm hoping there is a another project designed as a library that I could use or help get to a usable state.