Although there are 14+ versions of the AI-Thinker series of wifi microcontrollers featuring the ESP8266, the ESP-01 holds the distinction of being prized for it's a great combination of size, price, and functionality. The caveat to using such an inexpensive module is that there are some limitations to be aware of, like the weird 2x8 row of headers that make it breadboard-unfriendly, the lack of any voltage regulation, and the inability to talk 5V I/O.
So what can you load onto it? There's a few versions of firmware that you can load onto them, like:
The default AI-Thinker firmware
ARDUINO. This is a very robust implementation of the Arduino feature set, so you can move Arduino code to a ESP8266!
NodeMCU - a very popular firmware that gives pretty much full access to the microcontroller and wifi functions. Runs "Lua" scripts.
MicroPython (stripped down python 3)
Official Espressif (the manufacturer of the chipset). They provide a nice tool for flashing the firmware.
ESP8266 BASIC. Turns it into an access point, and lets you run BASIC programs from a web browser.
The ESP8266 WiFi Module is a self-contained SOC with integrated TCP/IP protocol stack that can give any microcontroller access to your WiFi network. The ESP8266 is capable of either hosting an application or offloading all Wi-Fi networking functions from another application processor. Each ESP8266 module comes pre-programmed with an AT command set firmware, meaning, you can simply hook this up to your Arduino device and get about as much WiFi-ability as a WiFi Shield offers (and that’s just out of the box)! The ESP8266 module is an extremely cost-effective board with a huge, and ever growing, community. This module has a powerful enough on-board processing and storage capability that allows it to be integrated with the sensors and other application specific devices through its GPIOs with minimal development up-front and minimal loading during runtime. Its high degree of on-chip integration allows for minimal external circuitry, including the front-end module, is designed to occupy minimal PCB area. The ESP8266 supports APSD for VoIP applications and Bluetooth co-existance interfaces, it contains a self-calibrated RF allowing it to work under all operating conditions, and requires no external RF parts. There is an almost limitless fountain of information available for the ESP8266, all of which has been provided by amazing community support. In the Documents section below you will find many resources to aid you in using the ESP8266, even instructions on how to transforming this module into an IoT (Internet of Things) solution!
Note: The ESP8266 Module is not capable of 5-3V logic shifting and will require an external Logic Level Converter. Please do not power it directly from your 5V dev board. This new version of the ESP8266 WiFi Module has increased the flash disk size from 512k to 1MB.