{"id":16017288,"url":"https://github.com/njh/ethersia","last_synced_at":"2025-03-17T16:30:32.084Z","repository":{"id":66272432,"uuid":"52749467","full_name":"njh/EtherSia","owner":"njh","description":"Minimal IPv6 library for Ethernet controllers on Arduino","archived":false,"fork":false,"pushed_at":"2021-10-31T17:51:52.000Z","size":618,"stargazers_count":64,"open_issues_count":3,"forks_count":17,"subscribers_count":11,"default_branch":"main","last_synced_at":"2025-03-16T12:42:25.471Z","etag":null,"topics":["arduino","enc28j60","ethernet","ipv6","w5100","w5500"],"latest_commit_sha":null,"homepage":"http://www.aelius.com/njh/ethersia","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/njh.png","metadata":{"files":{"readme":"README.md","changelog":"NEWS.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-02-28T23:04:27.000Z","updated_at":"2025-03-08T13:58:49.000Z","dependencies_parsed_at":null,"dependency_job_id":"d03bad43-49c2-4ec8-ae7c-333226745f35","html_url":"https://github.com/njh/EtherSia","commit_stats":{"total_commits":569,"total_committers":2,"mean_commits":284.5,"dds":"0.0017574692442882123","last_synced_commit":"9630156a908d22943e0caadea938485b0175bbc5"},"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/njh%2FEtherSia","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/njh%2FEtherSia/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/njh%2FEtherSia/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/njh%2FEtherSia/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/njh","download_url":"https://codeload.github.com/njh/EtherSia/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244068709,"owners_count":20392879,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["arduino","enc28j60","ethernet","ipv6","w5100","w5500"],"created_at":"2024-10-08T16:04:52.565Z","updated_at":"2025-03-17T16:30:32.077Z","avatar_url":"https://github.com/njh.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"EtherSia\n========\n\nA minimal IPv6 library for an [Arduino] with an [ENC28J60], [W5500] or [W5100] Ethernet controller.\n\n\nFeatures\n--------\n- SLAAC (Neighbour Discovery Protocol / Stateless Auto-configuration)\n- HTTP Server\n- UDP Client and Server\n- DNS Client\n\n\nDesign Decisions\n----------------\n1. Optimised for Arduino - not a general purpose library\n2. Should be easy to use - this is what Arduino is all about\n3. Should work within the constraints of an [Uno] - 32k ROM and 2k RAM\n4. Should follow the [Style Guide] and avoid using complex C features like Pointers and Callbacks\n5. Decouple the core from protocols where possible, to allow for program size optimisations\n6. Only use statically allocated memory to avoid leaks and keep memory usage down\n\n\nLimitations\n-----------\n- Ethernet only\n- No DHCPv6\n- No Routing or RPL\n- No TCP Client\n- Stateless TCP in HTTP Server (single packet request/response)\n- No fragmentation support\n- A single local router on the network is assumed\n- The network prefix length is assumed to be /64\n\nIf you need a more fully functional IPv6 stack, then take a look at [Contiki].\n\nEtherSia is an IPv6 only library. If you are looking for an IPv4 library for [ENC28J60],\nthen take a look at [EtherCard].\n\n\nCompatibility\n-------------\n\nEtherSia should work on any Arduino board with [ENC28J60], [W5500] or [W5100] based network interface.\nThere are the results of boards I have tested with:\n\n| Board                         | Class                  | Tested? | CS Pin | Hardware MAC Address |\n|-------------------------------|------------------------|---------|--------|----------------------|\n| [Arduino Ethernet Shield]     | [EtherSia_W5100]       | Working | 10     | None                 |\n| [Arduino Ethernet Shield 2]   | [EtherSia_W5500]       | Working | 10     | None                 |\n| [Nanode v5]                   | [EtherSia_ENC28J60]    | Working | 8      | UNI/O 11AA02E48      |\n| [Nanode RF] / Classic         | [EtherSia_ENC28J60]    | -       | 8      | MCP79411             |\n| [Nano Shield]                 | [EtherSia_ENC28J60]    | Working | 10     | None                 |\n| Velleman [KA04]/[VMA04]       | [EtherSia_ENC28J60]    | -       | 10     | None                 |\n| [Ciseco Ethernet Shield] K016 | [EtherSia_ENC28J60]    | -       | 10     | None                 |\n| [Snootlab Gate 0.5]           | [EtherSia_ENC28J60]    | -       | 10     | None                 |\n| _Testing on Linux_            | [EtherSia_LinuxSocket] | Working | -      | -                    |\n\nLicense: [3-clause BSD license]\n\n\n[Arduino]:                 http://www.arduino.cc/\n[Uno]:                     http://www.arduino.cc/en/Main/ArduinoBoardUno\n[Style Guide]:             http://www.arduino.cc/en/Reference/APIStyleGuide\n[Contiki]:                 http://www.contiki-os.org/\n[ENC28J60]:                http://www.microchip.com/ENC28J60\n[W5500]:                   http://www.wiznet.io/product-item/w5500/\n[W5100]:                   http://www.wiznet.io/product-item/w5100/\n[EtherCard]:               http://github.com/njh/EtherCard\n[3-clause BSD license]:    http://opensource.org/licenses/BSD-3-Clause\n\n[EtherSia_ENC28J60]:       http://www.aelius.com/njh/ethersia/class_ether_sia___e_n_c28_j60.html\n[EtherSia_LinuxSocket]:    http://www.aelius.com/njh/ethersia/class_ether_sia___linux_socket.html\n[EtherSia_W5100]:          http://www.aelius.com/njh/ethersia/class_ether_sia___w5100.html\n[EtherSia_W5500]:          http://www.aelius.com/njh/ethersia/class_ether_sia___w5500.html\n\n[Arduino Ethernet Shield]:   https://www.arduino.cc/en/Main/ArduinoEthernetShield\n[Arduino Ethernet Shield 2]: http://www.arduino.org/products/shields/arduino-ethernet-shield-2\n[Nanode v5]:                 https://wiki.london.hackspace.org.uk/view/Project:Nanode\n[Nanode RF]:                 http://ichilton.github.com/nanode/rf/build_guide.html\n[Nano Shield]:               http://www.tweaking4all.com/hardware/arduino/arduino-enc28j60-ethernet/\n[KA04]:                      http://www.vellemanprojects.eu/products/view/?id=412244\n[VMA04]:                     http://www.vellemanprojects.eu/products/view/?id=412540\n[Ciseco Ethernet Shield]:    http://openmicros.org/articles/88-ciseco-product-documentation/178-enc28j60-ethernet-shield-how-to-build\n[Snootlab Gate 0.5]:         http://shop.snootlab.com/ethernet/85-gate.html\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnjh%2Fethersia","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnjh%2Fethersia","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnjh%2Fethersia/lists"}