# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO # # When uploading crates to the registry Cargo will automatically # "normalize" Cargo.toml files for maximal compatibility # with all versions of Cargo and also rewrite `path` dependencies # to registry (e.g., crates.io) dependencies. # # If you are reading this file be aware that the original Cargo.toml # will likely look very different (and much more reasonable). # See Cargo.toml.orig for the original contents. [package] edition = "2024" rust-version = "1.85" name = "ethercrab" version = "0.7.1" build = false exclude = [ "dumps", "doc", "NOTES.md", "SPECNOTES.md", ] autolib = false autobins = false autoexamples = false autotests = false autobenches = false description = "A pure Rust EtherCAT MainDevice supporting std and no_std environments" documentation = "https://docs.rs/ethercrab" readme = "README.md" keywords = [ "ethercat", "beckhoff", "automation", "fieldbus", "robotics", ] categories = [ "science::robotics", "no-std", "network-programming", ] license = "MIT OR Apache-2.0" repository = "https://github.com/ethercrab-rs/ethercrab" resolver = "2" [package.metadata.docs.rs] default-target = "x86_64-unknown-linux-gnu" targets = [ "x86_64-unknown-linux-gnu", "x86_64-pc-windows-gnu", ] [features] default = [ "std", "io-uring", ] defmt = [ "dep:defmt", "embedded-io-async/defmt-03", "heapless/defmt-03", "ethercrab-wire/defmt-03", ] io-uring = ["dep:io-uring"] log = ["dep:log"] serde = [ "dep:serde", "bitflags/serde", ] std = [ "dep:pnet_datalink", "dep:async-io", "log", "futures-lite/std", "embedded-io-async/std", "ethercrab-wire/std", "spin/std", ] xdp = ["dep:xsk-rs"] [lib] name = "ethercrab" path = "src/lib.rs" [[example]] name = "dc" path = "examples/dc.rs" required-features = ["std"] [[example]] name = "dc-lan9252-groups" path = "examples/dc-lan9252-groups.rs" [[example]] name = "discover" path = "examples/discover.rs" [[example]] name = "dump-eeprom" path = "examples/dump-eeprom.rs" [[example]] name = "ek1100" path = "examples/ek1100.rs" required-features = ["std"] [[example]] name = "el3702-oversampling" path = "examples/el3702-oversampling.rs" [[example]] name = "io-uring" path = "examples/io-uring.rs" required-features = [ "std", "io-uring", ] [[example]] name = "multiple-groups" path = "examples/multiple-groups.rs" required-features = ["std"] [[example]] name = "pdi-and-sdo" path = "examples/pdi-and-sdo.rs" [[example]] name = "performance" path = "examples/performance.rs" [[example]] name = "release" path = "examples/release.rs" [[example]] name = "sdo-info" path = "examples/sdo-info.rs" [[example]] name = "smol-io-uring" path = "examples/smol-io-uring.rs" required-features = [ "std", "io-uring", ] [[example]] name = "windows" path = "examples/windows.rs" [[example]] name = "xdp" path = "examples/xdp.rs" required-features = [ "std", "xdp", ] [[test]] name = "init-must-be-send" path = "tests/init-must-be-send.rs" [[test]] name = "replay-dc" path = "tests/replay-dc.rs" [[test]] name = "replay-ek1100-alias-address" path = "tests/replay-ek1100-alias-address.rs" [[test]] name = "replay-ek1100-el2828-el2889" path = "tests/replay-ek1100-el2828-el2889.rs" [[test]] name = "replay-ek1914-el3004-configure" path = "tests/replay-ek1914-el3004-configure.rs" [[test]] name = "replay-ek1914-el3004-mailbox" path = "tests/replay-ek1914-el3004-mailbox.rs" [[test]] name = "replay-ek1914-no-complete-access" path = "tests/replay-ek1914-no-complete-access.rs" [[test]] name = "replay-ek1914-segmented-upload" path = "tests/replay-ek1914-segmented-upload.rs" [[test]] name = "replay-issue-255" path = "tests/replay-issue-255.rs" [[test]] name = "util" path = "tests/util.rs" [[bench]] name = "frame" path = "benches/frame.rs" harness = false [[bench]] name = "pdu_loop" path = "benches/pdu_loop.rs" harness = false [dependencies.async-io] version = "2.0.0" optional = true [dependencies.atomic-waker] version = "1.1.2" [dependencies.atomic_enum] version = "0.3.0" [dependencies.bitflags] version = "2.9.0" [dependencies.crc] version = "3.2.1" default-features = false [dependencies.defmt] version = "0.3.5" optional = true [dependencies.embassy-time] version = "0.4.0" [dependencies.embedded-io-async] version = "0.6.0" default-features = false [dependencies.ethercrab-wire] version = "0.3.0" [dependencies.futures-lite] version = "2.0.0" default-features = false [dependencies.heapless] version = "0.8.0" [dependencies.lock_api] version = "0.4.13" [dependencies.log] version = "0.4.27" optional = true default-features = false [dependencies.sealed] version = "0.6.0" [dependencies.serde] version = "1.0.190" features = ["derive"] optional = true [dependencies.smlang] version = "0.8.0" [dependencies.spin] version = "0.10.0" features = [ "lock_api", "rwlock", ] default-features = false [dev-dependencies.arbitrary] version = "1.3.1" features = ["derive"] [dev-dependencies.cassette] version = "0.3.0" [dev-dependencies.core_affinity] version = "0.8.1" [dev-dependencies.criterion] version = "0.5.1" features = ["cargo_bench_support"] default-features = false [dev-dependencies.csv] version = "1.3.0" [dev-dependencies.env_logger] version = "0.11.6" [dev-dependencies.heckcheck] version = "2.0.1" [dev-dependencies.pcap-file] version = "2.0.0" [dev-dependencies.pretty_assertions] version = "1.4.0" [dev-dependencies.quanta] version = "0.12.3" [dev-dependencies.savefile] version = "0.18.5" default-features = false [dev-dependencies.savefile-derive] version = "0.18.5" default-features = false [dev-dependencies.serde] version = "1.0.190" features = ["derive"] default-features = false [dev-dependencies.signal-hook] version = "0.3.17" [dev-dependencies.simple_logger] version = "5.0.0" default-features = false [dev-dependencies.smol] version = "2.0.0" [dev-dependencies.smoltcp] version = "0.12.0" features = [ "medium-ethernet", "proto-ipv4", "socket-raw", ] default-features = false [dev-dependencies.spin_sleep] version = "1.2.1" [dev-dependencies.ta] version = "0.5.0" [dev-dependencies.thread-priority] version = "1.2.0" [dev-dependencies.tokio] version = "1.33.0" features = [ "rt-multi-thread", "macros", "sync", "time", ] [target.'cfg(target_os = "linux")'.dependencies.io-uring] version = "0.7.4" optional = true [target.'cfg(target_os = "linux")'.dependencies.slab] version = "0.4.12" [target.'cfg(target_os = "linux")'.dependencies.smallvec] version = "1.13.1" features = ["const_generics"] [target.'cfg(target_os = "linux")'.dependencies.timerfd] version = "1.5.0" [target.'cfg(target_os = "linux")'.dependencies.xsk-rs] version = "0.8.0" optional = true [target.'cfg(target_os = "windows")'.dependencies.pcap] version = "2.2.0" [target.'cfg(target_os = "windows")'.dependencies.pnet_datalink] version = "0.35.0" features = ["std"] optional = true [target."cfg(unix)".dependencies.libc] version = "0.2.180" [target."cfg(unix)".dependencies.nix] version = "0.31.1" features = ["net"] [profile.profiling] debug = 2 inherits = "release"