Why is this product special? It basically avoids being too slow, too difficult to use, it also avoids signing an NDA, and avoids having limited functionality, it’s also not too expensive or large!
The CC3000 hits that sweet spot of usability, price and capability. It uses SPI for communication (not UART!) so you can push data as fast as you want or as slow as you want. It has a proper interrupt system with IRQ pin so you can have asynchronous connections. It supports 802.11b/g, open/WEP/WPA/WPA2 security, TKIP & AES. A built in TCP/IP stack with a "BSD socket" interface. TCP and UDP in both client and server mode, up to 4 concurrent sockets. It does not support "AP" mode, it can connect to an access point but it cannot be an access point.
We wrapped this little silver module in a tidy Arduino shield. It has an onboard 3.3V regulator that can handle the 350mA peak current, and a level shifter to allow 3 or 5V logic level. This version of the CC3000 breakout does not have an onboard antenna - instead we placed a standard uFL connector so that an external 2.4GHz antenna can be used. You will need to purchase a uFL to RP-SMA adapter cable and a 2.4GHZ 'WiFi' antenna to use! See below for these items. This option can give you better range and makes it easier to enclose in a box. We use the same route and layout as TI's eval board, however, this module is no longer automatically FCC certified when an external antenna is used.