OpcSharp.Client
0.1.1
See the version list below for details.
dotnet add package OpcSharp.Client --version 0.1.1
NuGet\Install-Package OpcSharp.Client -Version 0.1.1
<PackageReference Include="OpcSharp.Client" Version="0.1.1" />
<PackageVersion Include="OpcSharp.Client" Version="0.1.1" />
<PackageReference Include="OpcSharp.Client" />
paket add OpcSharp.Client --version 0.1.1
#r "nuget: OpcSharp.Client, 0.1.1"
#:package OpcSharp.Client@0.1.1
#addin nuget:?package=OpcSharp.Client&version=0.1.1
#tool nuget:?package=OpcSharp.Client&version=0.1.1
OpcSharp
A pure C# OPC UA client SDK with zero external OPC UA dependencies. Implements the OPC UA Binary Protocol from scratch.
Targets: netstandard2.0 · net8.0 · net9.0 · net10.0
Installation
dotnet add package OpcSharp.Client
Individual layers can be referenced separately if needed:
dotnet add package OpcSharp.Types
dotnet add package OpcSharp.Encoding
dotnet add package OpcSharp.Transport
dotnet add package OpcSharp.Transport.Http
dotnet add package OpcSharp.Security
dotnet add package OpcSharp.Protocol
dotnet add package OpcSharp.Services
Architecture
Layered stack where each layer depends only on layers below it:
OpcSharp.Client ← High-level API, fluent builder, DI integration
OpcSharp.Services ← Attribute, Browse, Method, Subscription, Discovery
OpcSharp.Protocol ← Session + SecureChannel management
OpcSharp.Security ← Security policies, crypto, certificates, user identity
OpcSharp.Transport.Http← HTTPS/WebSocket transport
OpcSharp.Transport ← TCP transport, Hello/ACK, chunking
OpcSharp.Encoding ← Binary encoder/decoder for all OPC UA types
OpcSharp.Types ← NodeId, StatusCode, DataValue, Variant, etc.
Quick Start
var client = new OpcSharpClientBuilder()
.WithEndpoint("opc.tcp://localhost:4840")
.WithSecurity(policy => policy.None())
.Build();
await client.ConnectAsync();
var result = await client.ReadAsync(new ReadValueId
{
NodeId = new NodeId(2258),
AttributeId = AttributeIds.Value
});
Console.WriteLine(result.Value);
await client.DisconnectAsync();
Security
Supported policies: None, Basic128Rsa15, Basic256, Basic256Sha256, Aes128_Sha256_RsaOaep, Aes256_Sha256_RsaPss, and ECC policies (NET8+).
User identity: Anonymous, UserName/Password, X509 Certificate, Issued Token (SAML/JWT).
Build & Test
dotnet build OpcSharp.sln
dotnet test OpcSharp.sln
Integration tests require Docker:
docker compose -f docker/docker-compose.yml up -d
dotnet test tests/OpcSharp.Integration.Tests
License
See LICENSE for details.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- IndexRange (>= 1.0.3)
- IsExternalInit (>= 1.0.3)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 9.0.1)
- Microsoft.Extensions.Logging.Abstractions (>= 9.0.1)
- Microsoft.Extensions.Options (>= 9.0.1)
- Nullable (>= 1.3.1)
- OpcSharp.Encoding (>= 0.1.1)
- OpcSharp.Protocol (>= 0.1.1)
- OpcSharp.Security (>= 0.1.1)
- OpcSharp.Services (>= 0.1.1)
- OpcSharp.Transport (>= 0.1.1)
- OpcSharp.Transport.Http (>= 0.1.1)
- OpcSharp.Types (>= 0.1.1)
-
net10.0
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 9.0.1)
- Microsoft.Extensions.Logging.Abstractions (>= 9.0.1)
- Microsoft.Extensions.Options (>= 9.0.1)
- OpcSharp.Encoding (>= 0.1.1)
- OpcSharp.Protocol (>= 0.1.1)
- OpcSharp.Security (>= 0.1.1)
- OpcSharp.Services (>= 0.1.1)
- OpcSharp.Transport (>= 0.1.1)
- OpcSharp.Transport.Http (>= 0.1.1)
- OpcSharp.Types (>= 0.1.1)
-
net8.0
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 9.0.1)
- Microsoft.Extensions.Logging.Abstractions (>= 9.0.1)
- Microsoft.Extensions.Options (>= 9.0.1)
- OpcSharp.Encoding (>= 0.1.1)
- OpcSharp.Protocol (>= 0.1.1)
- OpcSharp.Security (>= 0.1.1)
- OpcSharp.Services (>= 0.1.1)
- OpcSharp.Transport (>= 0.1.1)
- OpcSharp.Transport.Http (>= 0.1.1)
- OpcSharp.Types (>= 0.1.1)
-
net9.0
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 9.0.1)
- Microsoft.Extensions.Logging.Abstractions (>= 9.0.1)
- Microsoft.Extensions.Options (>= 9.0.1)
- OpcSharp.Encoding (>= 0.1.1)
- OpcSharp.Protocol (>= 0.1.1)
- OpcSharp.Security (>= 0.1.1)
- OpcSharp.Services (>= 0.1.1)
- OpcSharp.Transport (>= 0.1.1)
- OpcSharp.Transport.Http (>= 0.1.1)
- OpcSharp.Types (>= 0.1.1)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.