---
title: "EtherSia"
url: "https://maker.wiznet.io/lawrence/projects/ethersia/"
markdown_url: "https://maker.wiznet.io/lawrence/projects/ethersia/md"
type: "UCC: User Created Content"
author: "Nicholas Humfrey"
author_url: "https://github.com/njh/ethersia"
editor: "WIZnet"
editor_url: "https://maker.wiznet.io/"
original_author: "Nicholas Humfrey"
original_url: "https://github.com/njh/ethersia"
published: "2023-06-05"
language: "en"
likes: 0
views: 288
comments: 0
source: "WIZnet Makers (https://maker.wiznet.io/)"
---

# EtherSia

> A minimal IPv6 library for an Arduino with an ENC28J60, W5500 or W5100 Ethernet controller.

Original author: Nicholas Humfrey (source: https://github.com/njh/ethersia)

## Article

## EtherSia

A minimal IPv6 library for an [Arduino](http://www.arduino.cc/) with an [ENC28J60](http://www.microchip.com/ENC28J60), [W5500](http://www.wiznet.io/product-item/w5500/) or [W5100](http://www.wiznet.io/product-item/w5100/) Ethernet controller.

## Features

- SLAAC (Neighbour Discovery Protocol / Stateless Auto-configuration)

- HTTP Server

- UDP Client and Server

- DNS Client

## Design Decisions

1. Optimised for Arduino - not a general purpose library

2. Should be easy to use - this is what Arduino is all about

3. Should work within the constraints of an [Uno](http://www.arduino.cc/en/Main/ArduinoBoardUno) - 32k ROM and 2k RAM

4. Should follow the [Style Guide](http://www.arduino.cc/en/Reference/APIStyleGuide) and avoid using complex C features like Pointers and Callbacks

5. Decouple the core from protocols where possible, to allow for program size optimisations

6. Only use statically allocated memory to avoid leaks and keep memory usage down

---

Source: https://maker.wiznet.io/lawrence/projects/ethersia/
