1
0
Fork
You've already forked gatorcat
0
forked from jeffective/gatorcat
EtherCAT MainDevice for Zig
  • Zig 99.7%
  • Nix 0.3%
2026年04月15日 21:17:44 -07:00
doc investigate why zenoh session is not closed 2025年12月10日 21:11:04 -08:00
src upgrade to zig 0.16.0 2026年04月15日 00:43:10 -07:00
test fix flake 2026年04月13日 22:07:48 -07:00
.gitignore fix flake 2026年04月13日 22:07:48 -07:00
build.zig make oci build multiplatform 2026年04月04日 14:50:11 -07:00
build.zig.zon update zbor dependency 2026年04月15日 21:17:44 -07:00
LICENSE use Eclipse Public License 2.0 (EPL-2.0) 2025年12月06日 15:09:09 -08:00
README.md add TODO 2026年03月31日 22:54:43 -07:00

 /\_/\
 / o o \ gatorcat
 (_. ^ ._)=^=====^===^===^\\ 
 ~~~ //~~~~~~~\\~~~ \\
 v v v

Gatorcat is an EtherCAT maindevice written in the Zig programming language.

Warning

Gatorcat is alpha software. Using it today means participating in its development. You may find bugs or need features implemented before you can use Gatorcat effectively.

Gatorcat provides the following:

  • CLI: a pre-built executable for running and scanning ethercat networks.
  • module: zig module for writing applications that interact with ethercat networks.

Documentation

See doc.

Notably Working Features

  • automatic configuration via SII and CoE
  • process data published on zenoh
  • network operation and topology verification against a config file
  • multi-OS support (Linux and Windows)

Notably Missing Features

  • distributed clocks
  • cable redundancy
  • Ethernet Over EtherCAT (EoE), also AoE, FoE, SoE, VoE
  • user configurable processing of CoE emergency messages
  • mapping the mailbox status into the process data
  • async / event loop frames, multi-threading friendly API
  • linux XDP, mac-os, embedded support
  • Segmented SDO transfer
  • EEPROM write access
  • Network diagnosis in the CLI (CRC counters etc.)
  • resilient mailbox state machine

TODO

  • change deserialization of embedded protocols to do zero backtracking
  • tech debt
    • arbitrary maximum mailbox size
    • simulator should use simulated time (std.Io eventually)
  • fix release script
  • use oci pacakge to generate docker files
  • use std.io in port
  • make npcap integration suck less
  • use XDP

Contributing

Please open an issue before contributing so we can discuss. PRs without an open issue will be rejected.

AI contributions will be an insta-ban.