Skip to content

Commit

Permalink
Documentation changes
Browse files Browse the repository at this point in the history
  • Loading branch information
locka99 committed Jan 29, 2020
1 parent 4edc775 commit 87e374b
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 9 deletions.
9 changes: 5 additions & 4 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,6 @@ Planned future work is listed at the bottom.
- Prevent nested arrays from being deserialized.
- Multiple chunk support in client and server, sending and receiving.
- Add more session diagnostics to the address space
- Update Tokio/Futures for `async`/`await` - Rust 2018 will implement new async functionality over time
and this project will reflect best practice.
- More asynchronous actions internal to the server and client, possibly also the client api and some callbacks.
- Better access control, i.e. user access level reflecting the active session
- Certificate trust via signed certificate chain / trusted cert store
Expand Down Expand Up @@ -183,16 +181,19 @@ Planned future work is listed at the bottom.
An aspirational list of things that would be nice to implement in the future:

## Short term
- Support Aes128-Sha256-RsaOaep and Aes256-Sha256-RsaPss security policies
- Support Aes128-Sha256-RsaOaep security policy
- Support Aes256-Sha256-RsaPss security policy - note that the RSA-PSS padding makes it more complex than Aes128-Sha256-RsaOaep
- ReadValueId and HistoryReadValueId should check the data_encoding field, validate it and attempt
to return the DataValue with the value encoding as per spec.
- ReadValueId should check the index_range field to return an element or range of elements from an array.

## Longer term

- Update Tokio/Futures for `async`/`await` - Rust 2018 will implement new async functionality over time
and this project will reflect best practice. A new version of Tokio needs to drop for this to happen.
- User-level permission model, i.e. ability to limit access to address space based on identity
- Replace more OpenSSL with a native Rust equivalent library. Must support all the crypto, hashing / digest and key
creation APIs required by the lib.
creation APIs required by the lib. See this [doc](./docs/crypto.md) for the effort required.
- Tokio codec - use a codec and frame writer to write message chunks
- Model enforcement rules for address space data coherence. At present, the server is expected to just know what it is
doing. Perhaps that is a reasonable thing to assume.
12 changes: 8 additions & 4 deletions docs/compatibility.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,10 @@

## OPC UA Binary Transport Protocol

This implementation implement the `opc.tcp://` binary format. Binary over `https://` might happen at a later time.
This implementation supports the `opc.tcp://` binary protocol. Binary over `https://` is not supported although it is
conceivable that it could be supported.

It will **not** implement OPC UA over XML. XML hasn't see much adoption so this is no great impediment.
The implement will **not** implement OPC UA over XML. XML hasn't see much adoption so this is no great impediment.

## Server

Expand Down Expand Up @@ -64,12 +65,15 @@ The following services are supported:
* Method service set
* Call

Other service calls are unsupported. Calling an unsupported service will terminate the session.
Other service / method calls are unsupported. Calling an unsupported service will terminate the session. Calling
an unsupported method will generate a service fault.

### Address Space / Nodeset

The standard OPC UA address space is exposed. OPC UA for Rust uses a script to generate code to create and
populate the standard address space.
populate the standard address space. This functionality is controlled by a server build feature `generated-address-space`
that defaults to on but can be disabled if the full address space is not required. When disabled, the address space
will be empty apart from some root objects.

### Current limitations

Expand Down
3 changes: 2 additions & 1 deletion docs/design.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,8 @@ OPC UA for Rust is split over several crates which are periodically published:
* [`opcua-certificate-creator`](../tools/certificate-creator) - a command-line tool for creating OPC UA compatible public cert and private key.

These are all published on [crates.io](https://crates.io). Generally speaking there is a 4-6 month gap between releases
unless a breaking bug is found. Releases tend to be very substantially improved between releases.
unless a breaking bug is found. The API tend to receive breaking changes between releases but the functionality grows
and becomes more complete.

The workspace also contains some other folders:

Expand Down

0 comments on commit 87e374b

Please sign in to comment.