You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This issue proposes refactoring the p-net library, which implements the PROFINET protocol for industrial automation, from C into Rust. The goal is to create a Rust-native implementation (p-net-rs) that maintains p-net’s functionality while leveraging Rust’s memory safety, concurrency, and modern ecosystem to improve reliability and developer experience in real-time industrial applications.
Motivation
No Rust Equivalent: As of June 2025, there is no mature Rust library for PROFINET, despite Rust’s growing adoption in industrial systems.
Safety: Rust eliminates C issues like buffer overflows and memory leaks, critical for PROFINET’s real-time, safety-critical use cases.
Performance: Rust’s performance is comparable to C, suitable for PROFINET’s real-time requirements.
Ecosystem: Integration with Rust crates (e.g., tokio for async networking) can enhance p-net for Industry 4.0 applications.
Goals
Develop a Rust-native p-net-rs library supporting core PROFINET features (e.g., RT communication, device discovery, cyclic data exchange).
Ensure compatibility with industrial systems (e.g., PLCs, Siemens devices).
Provide idiomatic Rust APIs that are safe and easy to use.
Support cross-platform use (Linux, Windows, RTOS).
Non-Goals
Replacing the C implementation (Rust version can coexist).
Adding new PROFINET features beyond the current implementation.
Proposed Approach
Setup:
Create a new repo (p-net-rs) or Rust submodule in p-net.
Use cargo and MIT license (matching p-net).
Implementation:
Port PROFINET stack (e.g., DCE/RPC, RT messaging) to Rust with safe abstractions.
Use tokio or smol for async Ethernet communication.
Description
This issue proposes refactoring the p-net library, which implements the PROFINET protocol for industrial automation, from C into Rust. The goal is to create a Rust-native implementation (p-net-rs) that maintains p-net’s functionality while leveraging Rust’s memory safety, concurrency, and modern ecosystem to improve reliability and developer experience in real-time industrial applications.
Motivation
Goals
Non-Goals
Proposed Approach
Setup:
Implementation:
Testing:
Documentation:
Rustdoc and examples for common PROFINET use cases (e.g., factory automation).
The text was updated successfully, but these errors were encountered: