All Projects → locka99 → Opcua

locka99 / Opcua

Licence: mpl-2.0
A client and server implementation of the OPC UA specification written in Rust

Programming Languages

rust
11053 projects

Projects that are alternatives of or similar to Opcua

Anjay
C implementation of the client-side OMA LwM2M protocol
Stars: ✭ 115 (-43.07%)
Mutual labels:  iot, monitoring, embedded
Chino Os
A real time operating system for IoT written in C++
Stars: ✭ 139 (-31.19%)
Mutual labels:  iot, embedded
Szl
A lightweight, embeddable scripting language
Stars: ✭ 134 (-33.66%)
Mutual labels:  iot, embedded
Wolfssh
wolfSSH is a small, fast, portable SSH implementation, including support for SCP and SFTP.
Stars: ✭ 142 (-29.7%)
Mutual labels:  iot, embedded
Opc
OPC DA client in Golang for monitoring and analyzing process data based on Windows COM.
Stars: ✭ 113 (-44.06%)
Mutual labels:  iot, monitoring
Awesome Micropython
Curated list of awesome MicroPython resources
Stars: ✭ 120 (-40.59%)
Mutual labels:  iot, embedded
Grisp
GRiSP Erlang Runtime Library
Stars: ✭ 141 (-30.2%)
Mutual labels:  iot, embedded
Opc Ua Ooi
Object Oriented Internet - C# deliverables supporting a new Machine To Machine (M2M) communication architecture
Stars: ✭ 104 (-48.51%)
Mutual labels:  iot, opc-ua
Esp8266 Firmware
DeviceHive esp8266 firmware. Control hardware via clouds with DeviceHive!
Stars: ✭ 154 (-23.76%)
Mutual labels:  iot, embedded
Wasm Micro Runtime
WebAssembly Micro Runtime (WAMR)
Stars: ✭ 2,440 (+1107.92%)
Mutual labels:  iot, embedded
Oshmi
SCADA HMI for substations and automation applications.
Stars: ✭ 180 (-10.89%)
Mutual labels:  iot, opc-ua
Iot Technical Guide
🐝 IoT Technical Guide --- 从零搭建高性能物联网平台及物联网解决方案和Thingsboard源码分析 ✨ ✨ ✨ (IoT Platform, SaaS, MQTT, CoAP, HTTP, Modbus, OPC, WebSocket, 物模型,Protobuf, PostgreSQL, MongoDB, Spring Security, OAuth2, RuleEngine, Kafka, Docker)
Stars: ✭ 2,334 (+1055.45%)
Mutual labels:  iot, opc-ua
Embedos
EmbedOS - Embedded security testing virtual machine
Stars: ✭ 108 (-46.53%)
Mutual labels:  iot, embedded
Sod
An Embedded Computer Vision & Machine Learning Library (CPU Optimized & IoT Capable)
Stars: ✭ 1,460 (+622.77%)
Mutual labels:  iot, embedded
Deviceplane
Open source device management for embedded systems and edge computing
Stars: ✭ 917 (+353.96%)
Mutual labels:  iot, embedded
Lib Python
Blynk IoT library for Python and Micropython
Stars: ✭ 140 (-30.69%)
Mutual labels:  iot, embedded
Mainflux
Industrial IoT Messaging and Device Management Platform
Stars: ✭ 1,341 (+563.86%)
Mutual labels:  iot, opc-ua
Opcua Commander
a opcua client with blessed (ncurses)
Stars: ✭ 99 (-50.99%)
Mutual labels:  iot, opc-ua
Angular5 Iot Dashboard
Multipurpose dashboard admin for IoT softwares, remote control, user interface. Develop your client dashboards in Angular 5 with vast variety of components available.
Stars: ✭ 148 (-26.73%)
Mutual labels:  iot, monitoring
Zenoh
zenoh unifies data in motion, data in-use, data at rest and computations. It carefully blends traditional pub/sub with geo-distributed storages, queries and computations, while retaining a level of time and space efficiency that is well beyond any of the mainstream stacks.
Stars: ✭ 182 (-9.9%)
Mutual labels:  iot, embedded

Introduction

This is an OPC UA server / client API implementation for Rust.

Linux
Windows

OPC UA is an industry standard for monitoring of data. It's used extensively for embedded devices, industrial control, IoT, etc. - just about anything that has data that something else wants to monitor, control or visualize.

Rust is a systems programming language and is therefore a natural choice for implementing OPC UA. This implementation supports the embedded, micro and nano profiles but may grow to support features in time.

Read the compatibility page for how the implementation conforms with the OPC UA spec.

Read the change log for changes per version as well as aspirational / upcoming work.

License

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

Setup

Read the setup for instructions on building OPCUA for Rust.

Read cross compilation for hints for cross compiling OPC UA for Rust to other platforms.

Design

Read the design for more in-depth description of implementation.

Tutorial

Tutorials / user guides are still work in progress.

Further Documentation

The API documentation is generated from the latest published crates. This may be some way behind current development.

Client Client side APIs to connect to an OPC UA server.
Server Server side APIs to host an OPC UA server, address space, create new nodes, subscriptions.
Crypto Security profiles, encryption, hashing, signing / verification, certificate management.
Core Core functionality shared by client and server - Secure channel, TCP encoding, TCP messages, chunking.
Types OPC UA core types and binary encoding implementations.

Samples

If you want to get stuck in, there are a number of samples in the samples/ folder. The simple-client and the simple-server projects are minimal client and server programs respectively.

# In one bash
cd opcua/samples/simple-server
cargo run
# In another bash
cd opcua/samples/simple-client
cargo run

The full list of samples:

  1. simple-server - an OPC UA server that adds 4 variables v1, v2, v3 and v4 and updates them from a timer via push and pull mechanisms.
  2. simple-client - an OPC UA client that connects to a server and subscribes to the values of v1, v2, v3 and v4.
  3. discovery-client - an OPC UA client that connects to a discovery server and lists the servers registered on it.
  4. chess-server - an OPC UA server that connects to a chess engine as its back end and updates variables representing the state of the game.
  5. demo-server - an OPC UA server that is more complex than the simple server and can be used for compliance testing.
  6. mqtt-client - an OPC UA client that subscribes to some values and publishes them to an MQTT broker.
  7. web-client - an OPC UA client that subscribes to some values and streams them over a websocket.
  8. modbus-server - an OPC UA server that translates variables from MODBUS.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].