[package]
edition = "2021"
name = "roboplc"
version = "0.6.3"
authors = ["Serhij S. <div@altertech.com>"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Framework for PLCs and real-time micro-services"
readme = "README.md"
keywords = [
"realtime",
"robots",
"plc",
"industrial",
]
license = "Apache-2.0"
repository = "https://github.com/roboplc/roboplc"
[package.metadata.docs.rs]
features = ["full"]
[package.metadata.playground]
features = ["full"]
[features]
async = ["dep:parking_lot_rt"]
default = ["locking-default"]
eapi = [
"dep:eva-common",
"dep:eva-sdk",
"dep:busrt",
"dep:tokio",
"dep:hostname",
]
full = [
"eapi",
"modbus",
"metrics",
"pipe",
"rvideo",
"rflow",
"logicline",
"async",
"json",
"msgpack",
"hmi",
"input-events",
]
hmi = [
"dep:egui",
"dep:eframe",
"dep:winit",
]
input-events = ["dep:evdev"]
json = ["dep:serde_json"]
locking-default = [
"dep:parking_lot",
"rtsc/parking_lot",
"rvideo?/locking-default",
"rflow?/locking-default",
"logicline?/locking-default",
]
locking-rt = [
"dep:parking_lot_rt",
"rvideo?/locking-rt",
"rflow?/locking-rt",
"logicline?/locking-rt",
]
locking-rt-safe = [
"rvideo?/locking-rt-safe",
"rflow?/locking-rt-safe",
"logicline?/locking-rt-safe",
]
logicline = ["dep:logicline"]
metrics = [
"dep:metrics",
"dep:metrics-exporter-prometheus",
"dep:metrics-exporter-scope",
"dep:tokio",
]
modbus = ["dep:rmodbus"]
msgpack = ["dep:rmp-serde"]
pipe = [
"tokio/process",
"tokio/io-util",
"tokio/macros",
"tokio/rt",
"tokio/time",
]
rflow = ["dep:rflow"]
rvideo = ["dep:rvideo"]
[lib]
name = "roboplc"
path = "src/lib.rs"
[[example]]
name = "modbus-master"
path = "examples/modbus-master.rs"
required-features = ["modbus"]
[[example]]
name = "modbus-slave"
path = "examples/modbus-slave.rs"
required-features = ["modbus"]
[[example]]
name = "raw-udp"
path = "examples/raw-udp.rs"
[[example]]
name = "shutdown"
path = "examples/shutdown.rs"
[[example]]
name = "shutdown-custom"
path = "examples/shutdown-custom.rs"
[[example]]
name = "pipe"
path = "examples/pipe.rs"
required-features = ["pipe"]
[[example]]
name = "rflow"
path = "examples/rflow.rs"
required-features = ["rflow"]
[[example]]
name = "eapi"
path = "examples/eapi.rs"
required-features = ["eapi"]
[[example]]
name = "snmp-modbus"
path = "examples/snmp-modbus.rs"
required-features = [
"modbus",
"snmp2",
]
[[example]]
name = "hmi"
path = "examples/hmi.rs"
required-features = ["hmi"]
[dependencies.atomic-timer]
version = "0.3.2"
features = ["serde"]
[dependencies.binrw]
version = "0.14.0"
[dependencies.bma-ts]
version = "0.2.4"
features = ["serde"]
[dependencies.busrt]
version = "0.5.2"
features = [
"rpc",
"ipc",
]
optional = true
[dependencies.bytemuck]
version = "1.17.1"
[dependencies.bytes]
version = "1.7.1"
[dependencies.colored]
version = "1"
[dependencies.eframe]
version = "0.33.0"
optional = true
[dependencies.egui]
version = "0.33.0"
optional = true
[dependencies.env_logger]
version = "0.10"
[dependencies.eva-common]
version = "0.4.4"
features = [
"events",
"payload",
"common-payloads",
"acl",
]
optional = true
default-features = false
[dependencies.eva-sdk]
version = "^0.4.1"
features = ["controller"]
optional = true
[dependencies.evdev]
version = "0.13"
optional = true
[dependencies.hostname]
version = "0.3.1"
optional = true
[dependencies.libc]
version = "0.2.153"
[dependencies.log]
version = "0.4.21"
[dependencies.logicline]
version = "^0.2.2"
features = [
"recording",
"exporter",
]
optional = true
default-features = false
[dependencies.metrics]
version = "0.24"
optional = true
[dependencies.metrics-exporter-prometheus]
version = "0.16.0"
features = ["http-listener"]
optional = true
default-features = false
[dependencies.metrics-exporter-scope]
version = "0.2.0"
optional = true
[dependencies.nix]
version = "0.29"
features = [
"signal",
"event",
]
[dependencies.object-id]
version = "0.1.3"
[dependencies.oneshot]
version = "0.1.6"
features = ["std"]
default-features = false
[dependencies.parking_lot]
version = "0.12.3"
optional = true
[dependencies.parking_lot_rt]
version = "0.12.1"
optional = true
[dependencies.pin-project]
version = "1.1.5"
[dependencies.rflow]
version = "^0.1.1"
optional = true
default-features = false
[dependencies.rmodbus]
version = "0.9.4"
optional = true
[dependencies.rmp-serde]
version = "1.3.0"
optional = true
[dependencies.roboplc-derive]
version = "0.3"
[dependencies.rtsc]
version = "0.4.3"
[dependencies.rvideo]
version = "0.5"
optional = true
default-features = false
[dependencies.serde]
version = "1.0"
features = [
"derive",
"rc",
]
[dependencies.serde_json]
version = "1.0.134"
optional = true
[dependencies.serial]
version = "0.4.0"
[dependencies.signal-hook]
version = "0.3.17"
[dependencies.snmp2]
version = "0.3"
optional = true
[dependencies.sysinfo]
version = "0.29"
[dependencies.thiserror]
version = "1.0.57"
[dependencies.tokio]
version = "1.36.0"
optional = true
[dependencies.tracing]
version = "0.1.40"
[dependencies.winit]
version = "0.30.9"
optional = true
[dev-dependencies.insta]
version = "1.36.1"
[dev-dependencies.log]
version = "0.4.21"
[dev-dependencies.tokio]
version = "1.36.0"
features = [
"rt",
"macros",
"time",
]
[dev-dependencies.tokio-util]
version = "0.7.11"
[dev-dependencies.tracing]
version = "0.1.40"
features = ["log"]
[target."cfg(windows)".dependencies.parking_lot_rt]
version = "0.12.1"