SDK Overview
The SDK provides high-level abstractions for message communication, including transport layers and message routing.
What the SDK Provides
- Transport abstractions (UDP, TCP, Serial, WebSocket)
- Message routing and handlers
- Observer/subscriber patterns
- Asynchronous I/O (where supported)
When to Use the SDK
Use the SDK when:
- Building applications that communicate over networks or serial
- Need transport abstraction (switch between UDP/TCP/Serial easily)
- Want message routing and handler registration
Use code generation only when:
- Implementing custom communication protocols
- Working in resource-constrained environments
- Need full control over message handling
SDK Availability
| Language | SDK | Transports |
|---|---|---|
| C++ | ✓ | Serial, UDP, TCP, WebSocket (via ASIO) |
| TypeScript/JavaScript | ✓ | UDP, TCP, WebSocket, Serial |
| Python | ✓ | Serial, sockets, WebSocket |
| C# | ✓ | Serial, UDP, TCP, WebSocket |
| C | - | N/A |
Generating with SDK
# C++ with full SDK (includes ASIO)python -m struct_frame messages.proto --build_cpp --sdk
# C++ embedded SDK (no external dependencies)python -m struct_frame messages.proto --build_cpp --sdk_embedded
# TypeScript with SDKpython -m struct_frame messages.proto --build_ts --sdk
# Python with SDKpython -m struct_frame messages.proto --build_py --sdk
# C# with transportspython -m struct_frame messages.proto --build_csharp --csharp_sdk