A Java library for processing Bitcoin, stores blockchain headers only
From the project page:
BitCoinJ is a Java implementation of the native BitCoin P2P protocol, which allows it to maintain a wallet and send/receive transactions without needing a local copy of the official implementation. It comes with full documentation and some example apps showing how to use the library.
It has been ported to C# in BitCoinSharp.