ethercat 0.3.1

Binding to the IgH/Etherlab open-source EtherCAT master
Documentation
# The `ethercat` crate

[![Apache 2.0 licensed](https://img.shields.io/badge/license-Apache2.0-blue.svg)](./LICENSE-APACHE)
[![MIT licensed](https://img.shields.io/badge/license-MIT-blue.svg)](./LICENSE-MIT)
[![crates.io](https://img.shields.io/crates/v/ethercat.svg)](https://crates.io/crates/ethercat)
[![docs](https://docs.rs/ethercat/badge.svg)](https://docs.rs/ethercat)

[Documentation](https://docs.rs/crate/ethercat/)

# About

The `ethercat` crate provides a Rust wrapper for the IgH/Etherlab
[EtherCAT Master for Linux](https://etherlab.org/en/ethercat/).

EtherCAT is an Ethernet-based fieldbus system, originally invented by Beckhoff
GmbH but now used by numerous providers of automation related hardware.
The IgH master lets you provide an EtherCAT master on a Linux machine without
specialized hardware.

# Building

In order to build the raw wrapper crate `ethercat-sys`, you need to set the
environment variable `ETHERCAT_PATH` to the location of a checkout of the IgH
Etherlab repository, *after running `configure` there*.

The IgH repository is located at <https://gitlab.com/etherlab.org/ethercat>.
Please switch to the ``stable-1.5`` branch in the checkout.

Bindings have been pregenerated for revision `c022ddbcf254` - if you activate
the feature `pregenerated-bindings`, you don't need the master code to build,
but the kernel modules must match that revision.

The minimum tested Rust version is 1.63.0.

# Licensing

The Etherlab master provides Linux kernel modules under GPLv2 with an ioctl
based interface, and a userspace library under LGPLv2.1.  This crate does
not use the userspace library (which is mostly a simple wrapper around the
ioctls anyway) but rather communicates with the kernel modules through the
raw ioctls.

Therefore, we believe that the crate does not need to be GPLv2-licensed, and
are using the dual MIT/Apache-2 license commonly used for Rust crates.