I2c-tiny-usb made to provide a cheap generic i2c interface to be attached to the usb. It could be as simple and cheap printer port to i2c adapters. A USB solution has several advantages such as the built-in power supply and no cpu intense bitbanging is required on the host side. This USB solution even requires less parts than some printer port solutions. Although i2c-tiny-usb was developed under and for Linux but it also works under Windows and MacOS X.
The hardware the i2c-tiny-usb interface which is designed by Till Harbaumof consists of the Atmel AVR ATtiny45 CPU, a cheap and easy to obtain microcontroller with 4 KBytes flash (of which ~2k are used in this application) and 256 Bytes RAM. And few other parts surrounded the processor.
Source code, schematic and documentation