/opcua_pubsub

Rust implementation of OPC UA Pubsub

Primary LanguageRustMozilla Public License 2.0MPL-2.0

Introduction

This is an OPC UA experimental Pubsub implementation.

The implementation is based on the foundation of the crate opcua.

State

Currently only standalone subscriber and publisher via UADP are supported, see examples standalone_subscriber and standalone_publisher. The subscriber is tested against open62541

Warning this crate is in prototyping stage! Library interfaces will like change.

Features

  • Pubsub Messages
  • Standalone Subscription
  • Standalone Publisher
  • integrated Subscription
  • integrated Publisher
  • PubSub EventLoop
  • Events
  • Tokio support
  • Discovery Request and Response handling

Protocols

  • Udp wit uadp encoding
  • Eth with uadp encoding
  • MQTT with uadp encoding
  • MQTT with json encoding
  • AMQP with uadp encoding
  • AMQP with json encoding

UADP Messages

  • UADP Data Messages
  • UADP Delta Messages
  • UADP Keepalive Message
  • UADP Chunked Messages
  • UADP Discovery
  • UADP Security

Json Messages

  • Json Decoding
  • Message

Integration Publisher with opcua server

  • PubSubConnection
  • PublishedDataSet
  • WriterGroup
  • DataSetWriter
  • Information Model

Integration Subscriber with opcua server

  • PubSubConnection
  • SubscripedDataSet
  • ReaderGroup
  • DataSetReader
  • Link DataSet with DataSource
  • Information Model

WriterGroup

  • Raw Structures
  • KeepAlive
  • DeltaFrames (needs test)
  • Max message length
  • Events

General

  • Conform specs for alle points
  • Expand integration tests and add more tests

Configurable Features

  • "mqtt" - enables mqtt via paho
  • "server-integration" - enables integrates the opcua pubsub with an opcua server, it uses the opcua-server crate.

License

The code is licenced under MPL-2.0. Like all open source code, you use this code at your own risk.