RocketWelder.SDK
1.0.2
See the version list below for details.
dotnet add package RocketWelder.SDK --version 1.0.2
NuGet\Install-Package RocketWelder.SDK -Version 1.0.2
<PackageReference Include="RocketWelder.SDK" Version="1.0.2" />
<PackageVersion Include="RocketWelder.SDK" Version="1.0.2" />
<PackageReference Include="RocketWelder.SDK" />
paket add RocketWelder.SDK --version 1.0.2
#r "nuget: RocketWelder.SDK, 1.0.2"
#:package RocketWelder.SDK@1.0.2
#addin nuget:?package=RocketWelder.SDK&version=1.0.2
#tool nuget:?package=RocketWelder.SDK&version=1.0.2
RocketWelder SDK for .NET
High-performance video streaming client library for RocketWelder services with zero-copy shared memory support.
Features
- 🚀 Zero-Copy Performance - Direct shared memory access for minimal latency
- 📹 Multiple Protocols - Support for SHM, TCP, HTTP, and MJPEG streaming
- 🔄 Automatic Reconnection - Resilient connection handling with retry logic
- 📊 GStreamer Caps Parsing - Compatible with GStreamer pipeline configurations
- 🖼️ OpenCV Integration - Direct Mat support via Emgu.CV
Installation
dotnet add package RocketWelder.SDK
Quick Start
using RocketWelder.SDK;
// Parse connection string
var connectionString = ConnectionString.Parse("shm://MyBuffer?width=640&height=480&framerate=30");
// Create client
var client = new RocketWelderClient(connectionString);
// Connect with frame callback
await client.ConnectAsync(frame =>
{
Console.WriteLine($"Received frame: {frame.Width}x{frame.Height}");
// Process frame data (zero-copy access)
});
// Start receiving frames
await Task.Delay(TimeSpan.FromSeconds(10));
// Cleanup
client.Dispose();
Connection String Format
The SDK supports multiple connection protocols:
Shared Memory (SHM)
shm://BufferName?width=640&height=480&format=RGB&framerate=30
TCP Streaming
tcp://192.168.1.100:5000?width=640&height=480
HTTP MJPEG
http://192.168.1.100:8080/stream.mjpeg
Combined Protocols
shm+tcp://BufferName?tcp_host=192.168.1.100&tcp_port=5000&width=640&height=480
Video Formats
Supported video formats include:
- RGB/BGR - Standard color formats
- RGBA/BGRA - With alpha channel
- GRAY8/GRAY16 - Grayscale
- YUV - I420, YV12, NV12, NV21, YUY2, UYVY
- Bayer - Raw sensor formats (BGGR, RGGB, GRBG, GBRG)
GStreamer Caps Compatibility
The SDK can parse GStreamer caps strings directly:
var caps = "video/x-raw, format=(string)RGB, width=(int)640, height=(int)480, framerate=(fraction)30/1";
var format = GstCaps.Parse(caps);
// Use with client
var client = new RocketWelderClient(connectionString)
{
VideoFormat = format
};
Zero-Copy Frame Processing
Process frames without memory allocation:
await client.ConnectAsync(mat =>
{
// mat is an OpenCV Mat with direct access to shared memory
// No copying occurs - maximum performance
// Example: Simple brightness check
var mean = CvInvoke.Mean(mat);
Console.WriteLine($"Average brightness: {mean.V0}");
});
Advanced Configuration
var client = new RocketWelderClient(connectionString)
{
RetryAttempts = 5,
RetryDelay = TimeSpan.FromSeconds(1),
FrameTimeout = TimeSpan.FromSeconds(5),
BufferSize = 10 * 1024 * 1024, // 10MB buffer
VideoFormat = GstCaps.Parse(capsString)
};
Dependencies
- ZeroBuffer (>= 1.0.0) - High-performance shared memory IPC
- Emgu.CV (>= 4.11.0) - OpenCV wrapper for .NET
- Microsoft.Extensions.Configuration - Configuration abstractions
- Microsoft.Extensions.Logging - Logging abstractions
Platform Support
- .NET 9.0+
- Windows (x64)
- Linux (x64, arm64)
- macOS (x64, arm64)
Examples
Stream from GStreamer Pipeline
// GStreamer pipeline sending to shared memory
// gst-launch-1.0 videotestsrc ! video/x-raw,format=RGB,width=640,height=480 ! shmsink socket-path=/tmp/gst-shm
var connectionString = "shm:///tmp/gst-shm?width=640&height=480&format=RGB";
var client = new RocketWelderClient(connectionString);
await client.ConnectAsync(ProcessFrame);
Multi-Protocol Fallback
// Try SHM first, fallback to TCP
var connectionString = "shm+tcp://MyBuffer?tcp_host=localhost&tcp_port=5000&width=640&height=480";
var client = new RocketWelderClient(connectionString);
await client.ConnectAsync(ProcessFrame);
Performance
- Zero-copy shared memory access
- < 1ms latency for local SHM connections
- 60+ FPS for 1080p video streams
- Minimal CPU usage due to direct memory access
License
MIT License - Copyright © 2024 ModelingEvolution
See LICENSE file for details.
Support
- GitHub Issues: https://github.com/modelingevolution/rocket-welder-sdk/issues
- Documentation: https://github.com/modelingevolution/rocket-welder-sdk
About RocketWelder
RocketWelder provides high-performance video streaming solutions for industrial computer vision applications.
© 2024 ModelingEvolution. All rights reserved.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | 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 was computed. 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. |
-
net9.0
- Emgu.CV (>= 4.11.0.5746)
- Emgu.CV.runtime.ubuntu-x64 (>= 4.11.0.5746)
- Microsoft.Extensions.Configuration.Abstractions (>= 9.0.8)
- Microsoft.Extensions.Logging.Abstractions (>= 9.0.8)
- ZeroBuffer (>= 0.1.3)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last Updated |
---|---|---|
1.1.25 | 78 | 9/5/2025 |
1.1.24 | 74 | 9/5/2025 |
1.1.23 | 72 | 9/5/2025 |
1.1.22 | 74 | 9/5/2025 |
1.1.21 | 95 | 9/5/2025 |
1.1.20 | 98 | 9/5/2025 |
1.1.19 | 117 | 9/5/2025 |
1.1.18 | 99 | 9/5/2025 |
1.1.17 | 99 | 9/5/2025 |
1.1.16 | 100 | 9/5/2025 |
1.1.15 | 105 | 9/5/2025 |
1.1.14 | 108 | 9/5/2025 |
1.1.13 | 142 | 9/4/2025 |
1.1.12 | 288 | 8/25/2025 |
1.0.8 | 56 | 8/23/2025 |
1.0.7 | 52 | 8/23/2025 |
1.0.6 | 56 | 8/23/2025 |
1.0.5 | 122 | 8/21/2025 |
1.0.3 | 139 | 8/13/2025 |
1.0.2 | 128 | 8/13/2025 |
1.0.1 | 130 | 8/13/2025 |
1.0.0 | 130 | 8/13/2025 |