<commit_before>---
title: Libraries
---

## Table of Contents
  * [WiFi(ESP8266WiFi library)](#wifiesp8266wifi-library)
  * [Ticker](#ticker)
  * [EEPROM](#eeprom)
  * [I2C (Wire library)](#i2c-wire-library)
  * [SPI](#spi)
  * [SoftwareSerial](#softwareserial)
  * [ESP\-specific APIs](#esp-specific-apis)
  * [mDNS and DNS\-SD responder (ESP8266mDNS library)](#mdns-and-dns-sd-responder-esp8266mdns-library)
  * [SSDP responder (ESP8266SSDP)](#ssdp-responder-esp8266ssdp)
  * [DNS server (DNSServer library)](#dns-server-dnsserver-library)
  * [Servo](#servo)
  * [Other libraries (not included with the IDE)](#other-libraries-not-included-with-the-ide)

## WiFi(ESP8266WiFi library)

The [Wi-Fi library for ESP8266](https://github.com/esp8266/Arduino/tree/master/libraries/ESP8266WiFi) has been developed basing on [ESP8266 SDK](http://bbs.espressif.com/viewtopic.php?f=51&t=1023), using naming convention and overall functionality philosophy of [Arduino WiFi library](https://www.arduino.cc/en/Reference/WiFi). Over time the wealth Wi-Fi features ported from ESP9266 SDK to [esp8266 / Adruino](https://github.com/esp8266/Arduino) outgrow [Arduino WiFi library](https://www.arduino.cc/en/Reference/WiFi) and it became apparent that we need to provide separate documentation on what is new and extra.

[ESP8266WiFi library documentation](esp8266wifi/readme.md) : [Quick Start](esp8266wifi/readme.md#quick-start) | [Who is Who](esp8266wifi/readme.md#who-is-who) | [Station](esp8266wifi/readme.md#station) | [Soft Access Point](esp8266wifi/readme.md#soft-access-point) | [Scan](esp8266wifi/readme.md#scan) | [Client](esp8266wifi/readme.md#client) | [Client Secure](esp8266wifi/readme.md#client-secure) | [Server](esp8266wifi/readme.md#server) | [UDP](esp8266wifi/readme.md#udp) | [Generic](esp8266wifi/readme.md#generic) | [Diagnostics](esp8266wifi/readme.md#diagnostics)

## Ticker

Library for calling functions repeatedly with a certain period. Two examples included.

It is currently not recommended to do blocking IO operations (network, serial, file) from Ticker
callback functions. Instead, set a flag inside the ticker callback and check for that flag inside the loop function.
<commit_msg>Fix documentation typo (#3240)<commit_after>---
title: Libraries
---

## Table of Contents
  * [WiFi(ESP8266WiFi library)](#wifiesp8266wifi-library)
  * [Ticker](#ticker)
  * [EEPROM](#eeprom)
  * [I2C (Wire library)](#i2c-wire-library)
  * [SPI](#spi)
  * [SoftwareSerial](#softwareserial)
  * [ESP\-specific APIs](#esp-specific-apis)
  * [mDNS and DNS\-SD responder (ESP8266mDNS library)](#mdns-and-dns-sd-responder-esp8266mdns-library)
  * [SSDP responder (ESP8266SSDP)](#ssdp-responder-esp8266ssdp)
  * [DNS server (DNSServer library)](#dns-server-dnsserver-library)
  * [Servo](#servo)
  * [Other libraries (not included with the IDE)](#other-libraries-not-included-with-the-ide)

## WiFi(ESP8266WiFi library)

The [Wi-Fi library for ESP8266](https://github.com/esp8266/Arduino/tree/master/libraries/ESP8266WiFi) has been developed basing on [ESP8266 SDK](http://bbs.espressif.com/viewtopic.php?f=51&t=1023), using naming convention and overall functionality philosophy of [Arduino WiFi library](https://www.arduino.cc/en/Reference/WiFi). Over time the wealth Wi-Fi features ported from ESP9266 SDK to [esp8266 / Arduino](https://github.com/esp8266/Arduino) outgrow [Arduino WiFi library](https://www.arduino.cc/en/Reference/WiFi) and it became apparent that we need to provide separate documentation on what is new and extra.

[ESP8266WiFi library documentation](esp8266wifi/readme.md) : [Quick Start](esp8266wifi/readme.md#quick-start) | [Who is Who](esp8266wifi/readme.md#who-is-who) | [Station](esp8266wifi/readme.md#station) | [Soft Access Point](esp8266wifi/readme.md#soft-access-point) | [Scan](esp8266wifi/readme.md#scan) | [Client](esp8266wifi/readme.md#client) | [Client Secure](esp8266wifi/readme.md#client-secure) | [Server](esp8266wifi/readme.md#server) | [UDP](esp8266wifi/readme.md#udp) | [Generic](esp8266wifi/readme.md#generic) | [Diagnostics](esp8266wifi/readme.md#diagnostics)

## Ticker

Library for calling functions repeatedly with a certain period. Two examples included.

It is currently not recommended to do blocking IO operations (network, serial, file) from Ticker
callback functions. Instead, set a flag inside the ticker callback and check for that flag inside the loop function.

{'fraction_non_alphanumeric': 0.13936097892590074, 'fraction_numerical': 0.05347835939270338, 'mean_word_length': 5.6878787878787875, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 8, 'lorem ipsum': 0, 'www.': 4, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2707505', 'n_tokens_mistral': 1735, 'n_tokens_neox': 1525, 'n_words': 331}