This document explains how to manage RTI Connext DDS Connector libraries in the Go project.
The RTI Connector Go binding requires native C libraries from RTI Connext DDS. This project provides automated tools to download and manage these libraries from the official RTI GitHub releases.
# Using Make (recommended)
make download-libs
# Or directly using Go command
go run ./cmd/download-libsmake check-libsmake list-lib-versionsThe Go-based download tool (cmd/download-libs) provides comprehensive library management:
# Download latest version
go run ./cmd/download-libs
# Download specific version
go run ./cmd/download-libs -version v1.3.1
# Force download (overwrite existing)
go run ./cmd/download-libs -force
# Show current installation
go run ./cmd/download-libs -current
# List available versions
go run ./cmd/download-libs -list
# Use make commands (recommended)
make download-libs # Download latest
make download-libs-latest # Force download latest
make check-libs # Show current installation
make list-lib-versions # List available versionsThe tool automatically detects your platform and downloads the appropriate libraries:
Supported Platforms (v1.4.0+):
- Linux x64:
linux-x64libraries - Linux ARM64:
linux-arm64libraries - macOS Apple Silicon:
osx-arm64libraries - Windows x64:
win-x64libraries
Legacy Platforms (v1.3.1 and earlier only):
- macOS Intel:
osx-x64libraries (removed in v1.4.0) - Linux ARM 32-bit:
linux-armlibraries (removed in v1.4.0)
⚠️ Note: If you need Intel Mac or 32-bit ARM Linux support, use v1.3.1:go run ./cmd/download-libs -version v1.3.1
After downloading, the tool shows the appropriate environment setup:
Linux:
export LD_LIBRARY_PATH=$(pwd)/rticonnextdds-connector/lib/linux-x64:$LD_LIBRARY_PATHmacOS:
export DYLD_LIBRARY_PATH=$(pwd)/rticonnextdds-connector/lib/osx-arm64:$DYLD_LIBRARY_PATHWindows:
set PATH=%CD%\rticonnextdds-connector\lib\win-x64;%PATH%The following Make targets are available:
| Target | Description |
|---|---|
make download-libs |
Download latest libraries (interactive) |
make download-libs-latest |
Force download latest libraries |
make check-libs |
Show current installation info |
make list-lib-versions |
List available versions |
Libraries are downloaded from the official RTI repository:
- Repository: https://github.com/rticommunity/rticonnextdds-connector
- Releases: https://github.com/rticommunity/rticonnextdds-connector/releases
The tool can detect the currently installed version by examining the library files:
go run ./cmd/download-libs -current
# or
make check-libsThis shows:
- Platform and architecture
- Library path
- Version information extracted from binaries
- List of installed library files
Check what versions are available for download:
go run ./cmd/download-libs -list
# or
make list-lib-versionsRecent versions include:
- v1.4.0 (latest) - Apple Silicon support, removed Intel Mac and 32-bit ARM
- v1.3.1 - Last version with Intel Mac (osx-x64) and 32-bit ARM (linux-arm) support
- v1.3.0
- v1.2.3
- v1.2.2
- v1.2.0
After downloading, libraries are organized as:
rticonnextdds-connector/
├── lib/
│ ├── linux-x64/
│ │ ├── libnddsc.so
│ │ ├── libnddscore.so
│ │ └── librtiddsconnector.so
│ ├── linux-arm64/
│ │ ├── libnddsc.so
│ │ ├── libnddscore.so
│ │ └── librtiddsconnector.so
│ ├── osx-arm64/
│ │ ├── libnddsc.dylib
│ │ ├── libnddscore.dylib
│ │ └── librtiddsconnector.dylib
│ └── win-x64/
│ ├── nddsc.dll
│ ├── nddscore.dll
│ ├── rtiddsconnector.dll
│ └── vcruntime140.dll
└── include/
Note: v1.3.1 and earlier also included
osx-x64/andlinux-arm/directories.
- Libraries not found: Ensure library path is set correctly
- Go tool issues: Ensure Go is properly installed and accessible
- Network issues: Check internet connection and GitHub access
- Version not found: Verify version exists in releases
# Check if libraries are in path
echo $LD_LIBRARY_PATH # Linux
echo $DYLD_LIBRARY_PATH # macOS
# Verify library files
ls -la rticonnextdds-connector/lib/$(uname -s | tr '[:upper:]' '[:lower:]')-*
# Test library loading
make test-localFor automated builds, you can use:
# In CI scripts
go run ./cmd/download-libs -force # Force download latest
make test-local # Run testsThe tool is designed to work in both interactive and automated environments.
When contributing to the project:
- Always test with multiple library versions
- Ensure the download tool works on all supported platforms
- Update documentation if adding new library management features
- Test both Go module and manual installation paths