Todo List
Member CircularBuffer::getStreamType () const override
Return value of IDataSourceStream:getStreamType base class function should be of type StreamType, e.g. eSST_User
Member CircularBuffer::readMemoryBlock (char *data, int bufSize) override
Should IDataSourceStream::readMemoryBlock return same data type as its bufSize param?
Class HttpHeaders

add name and/or value escaping

Class HttpParams
values stored in escaped form, unescape return value and escape provided values. Revise HttpBodyParser.cpp as it will no longer do this job.
Member IDataSourceStream::readMemoryBlock (char *data, int bufSize)=0
Should IDataSourceStream::readMemoryBlock return same data type as its bufSize param?
Member MIME_TYPE_MAP (XX)
Consider using sz-strings for file extension to enable matching to alternative file extensions
Member pinMode (uint16_t pin, uint8_t mode)
ESP8266 supports pull-down on GPIO 0-15
Member SpiBus
Add support for overlapped I/O using SPI0 pins. Devices can be represented as SPI2, SPI3 and SPI4 as there are three CS available.
Class SSDP::Server
Randomise the time as required by MX and keep queue ordered by time. Each message is 12 bytes, adding time would make this 16. Need to handle alives < 1/2 expiry time as well so timer will always be active. Could also use a linked list so an additional pointer would make it 20 bytes.
Member UPnP::ControlPoint::cancelSearch ()
Set timeout on search operation and call this automatically Need to inform application though - perhaps a generic callback on the class?
Class USB::CDC::UsbSerial
We could inherit from HardwareSerial here, or preferably provide an abstract base class for all serial devices.
Member WDTClass::alive ()
Define the WDT period (how long before it triggers)
Module wifi_ap

How is wifi access point dhcp controlled?